SORU
21 AĞUSTOS 2012, Salı


jshint "Olası sıkı ihlali.&`bağlama kullanırken quot;`

Bu basit kodu göz önünde bulundurun:

"use strict";

var obj = {
    f: function() {
        this.prop = 'value';
        g.bind( this )();
    }
};

function g() {
    console.log( this.prop );
}

Eğer bu kodu doğrulamak için çalışırsanız, jshint beni console.log( this.prop ); diyorum nerede hata Possible strict violation. verir. Bu this bir işlevi, katı modda tanımlanmamış olmasıdır.

Ama aramadan önce, bu fonksiyon bağlama olduğumu, this doğru nesne.

Bu "" ana nesne. karmaşık önlemek için desen tasarımı kullanıyorum Parametreleri özellikler geçirmeden de işlevi darmadağın olacak, bunu yapmak için reddediyorum. Ayrıca, bu bind şeydir.

Jshint için bir şekilde bunu yapmama izin var mı?

CEVAP
21 AĞUSTOS 2012, Salı


Son derece zor bir kod çalıştırmadan bu durum tespit edilir. Seçeneği validthis bastırmak için bu uyarıyı kullanabilirsiniz:

"use strict";

var obj = {
    f: function() {
        this.prop = 'value';
        g.bind( this )();
    }
};

function g() {
    /*jshint validthis:true */
    console.log( this.prop );
}

Jshint yorum işlevi kapsamlı olduğunu kaydetti. Yorum işlevi için g ve iç fonksiyonları, sadece bir sonraki satır çalışır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • HSmasteryoda .

    HSmasteryoda

    22 Ocak 2010
  • 趣味そうこ♪

    趣味そう

    3 Mart 2010
  • TantalizingTrance

    TantalizingT

    15 ŞUBAT 2009