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

  • BASS212M

    BASS212M

    15 Temmuz 2009
  • Mindy

    Mindy

    20 NİSAN 2006
  • SellerDp

    SellerDp

    27 EKİM 2009