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

  • Eric Magidson

    Eric Magidso

    4 Ocak 2009
  • gsmaestro

    gsmaestro

    17 AĞUSTOS 2006
  • Rachel Raum

    Rachel Raum

    10 EYLÜL 2007