国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

javascript - 有關于上下文,即this指向的問題?

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

問題描述

直接上代碼:

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

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

到現在都是很明白,求大神解答!

問題解答

回答1:

拋出函數借用和構造函數,就剩兩種,一種是普通函數,一種是對象方法。

對象方法指向對象,普通函數指向全局

回答2:

誰調用了這個函數,那么this就指向誰。

this的指向只和你如何調用這個函數有關,比如你說第一個this指向test,這可不一定,有的是辦法把這個this的指向改掉。只有當你運行test.outer()的時候,第一個this才會指向test。

回答3:

/a/11...

回答4:

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

回答5:

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

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

標簽: JavaScript
主站蜘蛛池模板: 朔州市| 信丰县| 蒲江县| 桃江县| 修水县| 桦川县| 乳山市| 灵寿县| 安庆市| 临沧市| 璧山县| 太仆寺旗| 长宁县| 汝阳县| 尚义县| 南澳县| 玉田县| 灯塔市| 德州市| 双桥区| 南京市| 英山县| 惠来县| 辰溪县| 三原县| 百色市| 大同市| 池州市| 吉首市| 循化| 邢台市| 奎屯市| 东莞市| 安丘市| 永修县| 延庆县| 旬邑县| 平谷区| 绵竹市| 建始县| 阜宁县|