成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

javascript - 有關(guān)于上下文,即this指向的問題?

瀏覽:112日期:2023-03-05 15:14:03

問題描述

直接上代碼:

var test = { outer: function () { // 此時(shí)this指向test對(duì)象 console.log(this);function inner() { // 此時(shí)this指向window console.log(this); } inner(); }}

造成上述代碼this指向不同的原因是什么呢?

到現(xiàn)在都是很明白,求大神解答!

問題解答

回答1:

拋出函數(shù)借用和構(gòu)造函數(shù),就剩兩種,一種是普通函數(shù),一種是對(duì)象方法。

對(duì)象方法指向?qū)ο螅胀ê瘮?shù)指向全局

回答2:

誰調(diào)用了這個(gè)函數(shù),那么this就指向誰。

this的指向只和你如何調(diào)用這個(gè)函數(shù)有關(guān),比如你說第一個(gè)this指向test,這可不一定,有的是辦法把這個(gè)this的指向改掉。只有當(dāng)你運(yùn)行test.outer()的時(shí)候,第一個(gè)this才會(huì)指向test。

回答3:

/a/11...

回答4:

這是閉包問題,在給一個(gè)對(duì)象通過對(duì)象字面量進(jìn)行了賦值屬性 其中包括一個(gè)函數(shù)方法,這個(gè)函數(shù)方法有個(gè)控制臺(tái)輸出,然后這個(gè)函數(shù)里面又聲明一個(gè)函數(shù)形成了閉包問題,閉包在一般情況下this都是指向window的.有特殊情況可以改變this的值 你可以看看我寫的一篇有關(guān)閉包的文章 你會(huì)有收獲的 手機(jī)不方便貼 你可以看我個(gè)人資料

回答5:

其實(shí)把匿名回答的都不對(duì)!在對(duì)象里函數(shù)內(nèi)部定義的函數(shù),是不能直接獲取上一級(jí)環(huán)境變量的 ,更不能直接得到里面的this 要對(duì)她定義變量 比如 var that=this;這也你就能拿到上級(jí)的this對(duì)象; var test = {

outer: function () {// 此時(shí)this指向test對(duì)象var that=thisconsole.log(this);function inner() { // 此時(shí)this指向window console.log(that);}inner(); }}

標(biāo)簽: JavaScript