在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ 函數(shù)this指向

函數(shù)this指向

在看高程不知道第幾遍的時(shí)候,一直以為以前自己理解的東西,突然卻懵逼了

var name='thi window';
var obj = {
    name:'the obj',
    getName:function(){
        console.log(this);
        console.log(this.name);
    }
}
obj.getName();
(obj.getName)();
(obj.getName=obj.getName)();

第三個(gè)輸出的是打印the window
測(cè)試過(guò)比如var ty;
(ty = obj.getName)()//the window
高程那邊解釋是先復(fù)制在執(zhí)行,改變了this的指向,
測(cè)試也確實(shí)是這么回事,如果直接調(diào)用執(zhí)行this是obj的
只要賦值在執(zhí)行為撒指向就改變了呢?
假如分開(kāi)寫(xiě)的話能理解
比如 var ty = obj.getName;
ty();//the window
這樣寫(xiě)能理解,但是那個(gè)括號(hào)賦值并執(zhí)行有點(diǎn)理解不過(guò)來(lái)啊,我也只能強(qiáng)制自己記住如果賦值在執(zhí)行this就改變
各位有更好的理解和看法嗎?

回答
編輯回答
孤酒

圖片描述

所以實(shí)際上就是在window上調(diào)動(dòng)了這個(gè)函數(shù), this就是window了

2018年7月5日 05:56
編輯回答
孤巷

括號(hào)里面的表達(dá)式,返回值就是getName 函數(shù),前一個(gè)括號(hào)返回,后一個(gè)括號(hào)執(zhí)行,那么就相當(dāng)于是自己執(zhí)行的,而不是 obj 調(diào)用的。自己執(zhí)行的 函數(shù)內(nèi) this 指向的是 window。

2017年11月28日 14:25
編輯回答
傻丟丟

賦值的時(shí)候把函數(shù)賦值給變量,但是函數(shù)的this沒(méi)辦法賦值過(guò)去啊,所以再調(diào)用時(shí),默認(rèn)就是一個(gè)獨(dú)立的函數(shù)調(diào)用,this就丟失了!
我覺(jué)得這個(gè)更簡(jiǎn)單直接一些:http://www.cnblogs.com/xiaohu...

2017年9月5日 04:44
編輯回答
毀與悔

這個(gè)怎么說(shuō)呢?
拿第一個(gè)和第三個(gè)比:
調(diào)用的時(shí)候,都是在window下執(zhí)行的!?。《际窃趙indow下執(zhí)行的?。?!都是在window下執(zhí)行的?。。?br>第一個(gè) 是window的obj的getName。。。。他從window跑到了obj對(duì)吧。他的爸爸是誰(shuí)?是window的obj 對(duì)吧。
而第三個(gè) 賦值的時(shí)候。。window的obj的getName = window的obj的getName,賦值操作是先找到左邊的obj的getName。。好了。貌似跑到了obj。。。但是他右邊是誰(shuí)是window的obj的getName...所又他要跑回window...
等號(hào)左側(cè)的getName和 右側(cè)的getName 不想等。
clipboard.png ,
所以共同的爸爸就是祖先window

2018年4月3日 03:09