中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

使用promises時,為什么this在類方法中未定義

小云
123
2023-09-26 06:04:43
欄目: 編程語言

在類方法中,this的值取決于方法的調用方式。當使用普通函數調用類方法時,this會指向調用該方法的對象。但是,當使用箭頭函數調用類方法時,this會繼承自外部作用域,并且不會被綁定到類的實例上。這是因為箭頭函數沒有自己的上下文,它繼承了其父級上下文的this值。

在使用Promises時,如果你將類方法作為回調函數傳遞給Promise的then方法時,它會被作為普通函數調用,而不是作為方法調用。因此,this會指向全局對象(在瀏覽器環境中通常是window對象)或者undefined(在嚴格模式下)。

為了在類方法中正確使用this,可以使用箭頭函數來定義類方法。這樣,this會繼承自外部作用域,并且會正確地指向類的實例。例如:

class MyClass {
myMethod() {
return new Promise((resolve, reject) => {
// 在這里可以正常訪問this
resolve(this.someData);
});
}
}

在使用箭頭函數定義類方法時,需要注意以下幾點:

  1. 箭頭函數不能用作構造函數,因此不能使用new關鍵字創建類的實例。

  2. 箭頭函數沒有自己的arguments對象,也不能使用super關鍵字來訪問父類的方法。

  3. 箭頭函數不能改變自己的this值,即使使用callapplybind方法也不行。

0
双城市| 宁河县| 美姑县| 镇雄县| 昌都县| 隆子县| 南召县| 衢州市| 卓尼县| 钟祥市| 阜城县| 大邑县| 北票市| 元阳县| 襄垣县| 汝南县| 荃湾区| 包头市| 上林县| 保山市| 静乐县| 大洼县| 都江堰市| 马关县| 泰宁县| 资阳市| 墨竹工卡县| 应用必备| 博白县| 上蔡县| 汝阳县| 洛阳市| 土默特左旗| 石景山区| 开原市| 哈巴河县| 星座| 达州市| 建宁县| 兰州市| 台北市|