日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Atitit.js this错误指向window的解决方案

發布時間:2024/7/19 windows 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Atitit.js this错误指向window的解决方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Atitit.js?this錯誤指向window的解決方案

?

?

1.1.?出現地點and解決之道1

1.2.?call,applybind這三個方法2

1.2.1.?Function.prototype.call2

1.3.?在函數內部出現的this,指什么要看這個this所在的函數的被調用方式。?不論這個this出現在什么樣的函數中,層次有多深,結構多復雜,只要看直接包含它的函數即可。例如:??(1)?被直接調用時,this指全局對象window。3

2.?ref3

?

?

1.1.?出現地點and解決之道

出現地點:::?回調js??methd的時候兒...

解決之道::HRE.exe(mp,this.merge_callback.bind(this));

?

因為:::

?

下面說說我的拙見,如有不對,大神請指出。
先看setTimeout(this.sayHello,?1000);
this.sayHello只是傳了一個函數引用過去,這里的this指的是foo.prototype,因為JS函數塊是作用域,而setTimeout(this.sayHello,?1000);?是在foo.prototype.bar里面。

foo.prototype.bar?=?function(){

setTimeout(this.sayHello,?1000);

}

所以就相當于

setTimeout(function(){

????alert(this.myName);

},?1000);

屬于2、函數調用,this指向window。



?

setTimeout其實是window.setTimeout,setTimeout執行的時候this是指向window

作者::??(attilax)>>>?綽號:老哇的爪子?(?全名::Attilax?Akbar?Al?Rapanui?阿提拉克斯?阿克巴?阿爾?拉帕努伊?)?漢字名:艾龍,??EMAIL:1466519819@qq.com

轉載請注明來源:?http://www.cnblogs.com/attilax/

?

1.2.?call,applybind這三個方法

1.2.1.?Function.prototype.call

fun.call(thisArg[,?arg1[,?arg2[,?...]]])

可以用來指定調用call的函數的this指向(函數體的作用域),在所給定的thisArg(對象)作用域中執行該函數(call的調用者),后面的參數是函數調用過程中需要用到的數據,以逗號分隔的形式給出。

?

?

apply函數與call的使用場景類似,不同的地方是在調用參數部分,直接給出的是參數數組,而不是挨個添加,這對于編碼來講,大有裨益,可以直接把參數處理成數組的形式,傳遞進去,省去不少功夫,也提升了自動化能力

?

與上面不同的是,bind會返回一個改變this指向的新函數?,注意這里強調的是新函數,其與之前的使用的不是同一塊內存地址,

?

?

1.3.?在函數內部出現的this,指什么要看這個this所在的函數的被調用方式。
不論這個this出現在什么樣的函數中,層次有多深,結構多復雜,只要看直接包含它的函數即可。例如:

(1)?被直接調用時,this指全局對象window。

????func();

(2)?被作為構造函數調用時,this指當前正在構建的對象。

????new?func();

(3)?被作為某個對象A的方法調用時,this指方法所屬的對象A。

????A.func();

(4)?使用函數的apply或call方法調用時,this指第一個參數B。

????func.apply(B,?[m,?n,?...]);

????

????func.call(B,?m,?n,?...);



2.?ref

JS中的callapplybind方法的區別-日拱一卒-微頭條(wtoutiao.com).htm

(2?封私信???7?條消息)?JS中的this?在不同的地方指向不一樣,在哪些地方需要注意??-?知乎.htm

?

轉載于:https://www.cnblogs.com/attilax/p/5316822.html

總結

以上是生活随笔為你收集整理的Atitit.js this错误指向window的解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。