摘要:來(lái)分析下調(diào)用的結(jié)果第一行代碼跟平常一樣調(diào)用了返回了因?yàn)榫褪?。第二行代碼在調(diào)用這個(gè)方法之前給它加了一個(gè)括號(hào)。第三行代碼先執(zhí)行了一條賦值語(yǔ)句,然后再調(diào)用賦值后的結(jié)果。因?yàn)檫@個(gè)賦值表達(dá)式的值是函數(shù)本身,所以的值不能得到維持,結(jié)果就返回了。
var name = "The window"; var object = { name: "My Object", getName: function(){ console.log(this.name); } } object.getName(); // My Object (object.getName)(); // My Object (object.getName = object.getName)(); // The window
來(lái)分析下調(diào)用的結(jié)果:
第一行代碼跟平常一樣調(diào)用了object.getName()返回了My Object ,因?yàn)?b>this.name就是object.name。
第二行代碼在調(diào)用這個(gè)方法之前給它加了一個(gè)括號(hào)。雖然加了一個(gè)括號(hào)后,就好像只是在引用一個(gè)函數(shù),但是this的值得到了維持,因?yàn)?b>object.getName和(object.getName)的定義是相同的。
第三行代碼先執(zhí)行了一條賦值語(yǔ)句,然后再調(diào)用賦值后的結(jié)果。因?yàn)檫@個(gè)賦值表達(dá)式的值是函數(shù)本身,所以this的值不能得到維持,結(jié)果就返回了The window。
當(dāng)然你不大可能像第二行和第三行代碼一樣調(diào)用這個(gè)方法。這個(gè)例子只是說(shuō)明了一個(gè)細(xì)微的語(yǔ)法變化,都有可能意外的改變this的值。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/89777.html
摘要:在中,只有兩種指向,一種是指向當(dāng)前的封閉作用域,或者是指向當(dāng)前作用域的外層,的最頂層就是對(duì)象。在非嚴(yán)格模式下,默認(rèn)指向全局對(duì)象。瀏覽器環(huán)境全局函數(shù)方法用于在指定的毫秒數(shù)后調(diào)用函數(shù)或計(jì)算表達(dá)式。它會(huì)不停地調(diào)用函數(shù),指導(dǎo)被調(diào)用或者窗口被關(guān)閉。 1:基本概念 this字面意思是當(dāng)前,當(dāng)前執(zhí)行代碼的環(huán)境對(duì)象或者是上下文。代表著當(dāng)前方法執(zhí)行的環(huán)境上下文,那么何為環(huán)境上下文,通俗的說(shuō),誰(shuí)調(diào)用了函數(shù)...
摘要:輸出的原因,就不談了啊。論證賦值表達(dá)式,返回值是后者,借鑒自網(wǎng)上看到的方法輸出輸出函數(shù)運(yùn)行后,輸出的是賦值語(yǔ)句的后者的值此時(shí)值是。 var name = The Window; var object = { name : My Object, getName: function(){ console.log(this.name); } }; o...
摘要:刪除對(duì)匿名函數(shù)的引用,以便釋放內(nèi)存在匿名函數(shù)從中被返回后,它的作用域鏈被初始化為包含函數(shù)的活動(dòng)對(duì)象和全局變量對(duì)象。閉包與變量我們要注意到,閉包只能取到任意變量的最后值,也就是我們保存的是活動(dòng)對(duì)象,而不是確定值。 工作中會(huì)遇到很多 this對(duì)象 指向不明的問(wèn)題,你可能不止一次用過(guò) _self = this 的寫(xiě)法來(lái)傳遞this對(duì)象,它每每會(huì)讓我們覺(jué)得困惑和抓狂,我們很可能會(huì)好奇其中到底發(fā)...
摘要:定義函數(shù)表達(dá)式的方式有兩種函數(shù)聲明。不過(guò),這并不是匿名函數(shù)唯一的用途??梢允褂妹瘮?shù)表達(dá)式來(lái)達(dá)成相同的結(jié)果閉包匿名函數(shù)和閉包是兩個(gè)概念,容易混淆。匿名函數(shù)的執(zhí)行環(huán)境具有全局性,因此其對(duì)象通常指向通過(guò)改變函數(shù)的執(zhí)行環(huán)境的情況除外。 定義函數(shù)表達(dá)式的方式有兩種: 函數(shù)聲明。它的重要特征就是 函數(shù)聲明提升(function declaration hoisting) 即在執(zhí)行代碼之前會(huì)...
摘要:在一個(gè)閉包環(huán)境內(nèi)修改變量值,不會(huì)影響另一個(gè)閉包中的變量。直到看到函數(shù)閉包閉包這篇文章的代碼一部分,終于明白其中的邏輯了。 閉包 閉包定義:指擁有多個(gè)變量和綁定了這些變量的環(huán)境的表達(dá)式(通常是一個(gè)函數(shù)),因而這些變量也是該表達(dá)式的一部分。函數(shù)內(nèi)部可以直接讀取全局變量。函數(shù)內(nèi)部變量無(wú)法在函數(shù)外部訪問(wèn)。函數(shù)內(nèi)部聲明要用var或者let聲明,不然會(huì)變成全局變量鏈?zhǔn)阶饔糜颍鹤訉?duì)象會(huì)一級(jí)級(jí)向上尋找...
閱讀 486·2019-08-30 15:44
閱讀 901·2019-08-30 10:55
閱讀 2731·2019-08-29 15:16
閱讀 932·2019-08-29 13:17
閱讀 2806·2019-08-26 13:27
閱讀 572·2019-08-26 11:53
閱讀 2124·2019-08-23 18:31
閱讀 1891·2019-08-23 18:23