SORU
6 Aralık 2010, PAZARTESİ


Var self = this; kötü bir model mi?

Kendime ihtiyacım bulmak:

var self = this;

benim javascript içinde bir sürü 'sınıflar'. Bu genellikle yapılır, ancak biraz yanlış geliyor. Bu soruyu bulmak için umuyorum bu ile başa çıkmak için iyi bir yoldur, ya da beni ikna edecek bir şey bu oldukça iyi.

Bu standart yöntem, doğru bağlantıları etrafında tutmak için mi? Kullanarak standardize etmeli miyim 'ı açıkça gerekli olmadıkça, her yerde,' bu'. öz

editBu tam ihtiyacım olan şey, sadece biraz daha kötü olduğu düşünülürse merak ediyorum ve neden biliyorum. Ayrıca 'Uygula' yerleşik bir javascript yöntemi çağrılırken açıkça kapsam tanımlamak için fonksiyon var. farkındayım Daha mı iyi?

CEVAP
6 Aralık 2010, PAZARTESİ


Başkaları dedi ki: Bu "ekstra değişken" (bazı seviye aklımda olsun o this özel bir ifade ve böylece olmadığım bir değişken değil bağlı bir yürütme içeriği/kapatma.

Sorma ya gerçekten cevap vermeni istiyorum) bence sen ne ancak

Her yöntemi üstünde var self = this/kurucu yapmalıyım?

Özet

Bunu bir kez denedim, ve aynı soru varken, ben artık bu yaklaşımı kullanın. Şimdi bir kapatılmasında erişim ihtiyacı için inşa saklı tutuyorum. Bana biraz "hey, bu gerçekten istiyorum nedir" benim kod için semantik: .! ekler

this -> this self -> this (but really that) in a closure

Ala carte sorular:

...Yapılır, ya da, biraz yanlış geliyor. Bu soruyu bulmak için umuyorum bu ile başa çıkmak için iyi bir yoldur, ya da beni ikna edecek bir şey bu oldukça iyi.

Sana doğru gelen neyse onu yap. Bir yöntem deneyin ve daha sonra geri geçiş yapmak için korkmayın (ama lütfen tutarlı olmaya çalış her proje içinde :-)

Bu standart yöntem, doğru bağlantıları etrafında tutmak için mi? Kullanarak standardize etmeli miyim 'ı açıkça gerekli olmadıkça, her yerde,' bu'. öz

< . p ^"öz" en yaygın ismi kullanılır. Yukarıda başı olarak, tam tersi bir yaklaşım kapatma bağlama gerekli olduğunda dışında this kullanmayı tercih ederim.

eğer biraz kötü olduğu düşünülürse ..ve neden.

Kötü aptal öznel bir terim (eğlenceli olsa da bazen). Hiç adil yaklaşım takip etmiyorum neden kötü olduğunu, söyledim. Bazı insanlar "" noktalı virgül kullanmamak için. kötü olduğumu söyleme Aslında iyi argümanlar ve JavaScript daha iyi öğrenmek gerektiğini söylüyorum :-)

Ayrıca 'Uygula' yerleşik bir javascript yöntemi çağrılırken açıkça kapsam tanımlamak için fonksiyon var. farkındayım Daha mı iyi?

apply/call sorunu işlev çağırma noktada onları kullanmanız gerekir. Birisi yardımcı olmayacaktırbaşkathis gibi yöntemlerden birini çağırır zaten kapalı olabilir. this geri arama, vb element/madde olduğu jQuery tarzı aramalar gibi şeyler yapmak için çok yararlı oldu.

Bir kenara olarak...

Ben""üyeleri . kendi ihtiyaç kaçınmak gibi ve böylece genellikle alıcı (this) sadece nerede özellikleri için tüm üye fonksiyonları desteklemek "normal", beklendiği gibi "" akar.

"Benim kod yöntemleri ile başlar eğer kullanıcı onları ararsa" ve, onların suçu. " _ " özel Bu da prototip yaklaşımı oluşturma ve nesne için kullanırken daha iyi (gerekli, gerçekten) çalışır. Ancak, Douglas Crockford disagrees Bu "" benim yaklaşım ve bak-up zinciri beklenmedik bir alıcı aşılayarak önlemek olabilir bazı durumlarda . özel

Kullanarak" yapıcı bağlı ayrıca bak bir yöntem için zincirin üst sınırı kilitler "kendi kendine (artık Yukarı polimorfik!) olabilir veya doğru olmayabilir. Normalde yanlış olduğunu düşünüyorum.

Mutlu kodlama.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Edge-CGI 3D Tutorials and more!

    Edge-CGI 3D

    11 HAZİRAN 2013
  • Friday NightFort

    Friday Night

    15 EYLÜL 2011
  • George McCarron

    George McCar

    29 Mayıs 2013