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

  • fouseyTUBE

    fouseyTUBE

    21 Mart 2011
  • Mark Halberstadt

    Mark Halbers

    19 ŞUBAT 2010
  • multimediaGEEKS LLC

    multimediaGE

    3 Mayıs 2010