Temel olarak 'bu' anahtar kelimenin JavaScript'deki çalışma prensibini anlamaya ve öğrenmeye çalışıyorum.'Bu' anahtar sözcük, başka bir işlevin içindeki bir işlev içinde hangi nesneyi gösterir?
Anladığım kadarıyla 'bu', o anın içinde bulunduğu nesneye (işlev) karşılık gelir.
Yani, bu inanarak, aşağıda basit kod çıkışını test etmek istedim:<body>
<input type="button" value="Add Age" onclick="Outer()" />
<script type="text/javascript">
function Outer(){
if(typeof this.Father == 'undefined')
{
this.Father = 0;
}
this.Father+=2;
alert(this.Father);
inner();
function inner(){
if(typeof this.Son== 'undefined')
{
this.Son = 0;
};
this.Son++;
alert(this.Son);
alert(this.Father);
};
};
</script>
</body>
Ve çıkış beni karıştırır. Çünkü internal() işlevinde, bu .on, Oğunun artan tamsayı değerini verir. Ama ben bunu bekliyoruz. Father başarısız çünkü iç() .Father özniteliğine sahip değil. Ama bunun yerine, bir özel durum atma bu this.Father -ki değeri
- 'bu' iç()
- ve aşağıdaki satırı 'bu'()
mu bu anahtar kelime bile iç işlevleri içinde her zaman dış skopun konut atıfta: Bu noktada
i aslında aklımda 2 soru var?
Ve 'this' anahtar sözcüğünü bildirmedikçe, anahtar sözcükler yöntemde ne ifade eder?
sayesinde
Teşekkürler, gerçekten yararlı bilgiler. Bu makaledeki arama kalıpları hakkında daha fazlasını bulabilirsiniz: http://mcarthurgfx.com/blog/article/4-ways-functions-mess-with-this – pencilCake
Ve bu da oldukça açıklayıcıdır: İşlev çağırma JavaScript - içerikler yeniden ziyaret edildi - http://msmvps.com/blogs/luisabreu/archive/2009/08/24/function-invocation-in-javascript-contexts-revisited.aspx – pencilCake