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

  • funbro1

    funbro1

    11 Aralık 2007
  • MovieZoneET

    MovieZoneET

    22 Aralık 2009
  • nemoking of kinges

    nemoking of

    4 EYLÜL 2009