亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

使用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
汝城县| 延长县| 密云县| 阿巴嘎旗| 原阳县| 娄底市| 增城市| 塔城市| 浮梁县| 惠来县| 高要市| 扎兰屯市| 科技| 云南省| 南康市| 江都市| 花莲市| 乳山市| 两当县| 郴州市| 通海县| 铁岭县| 万年县| 汉阴县| 虎林市| 营口市| 邵阳县| 南宁市| 天全县| 彝良县| 桂平市| 昭平县| 新野县| 芦溪县| 抚松县| 嘉荫县| 黄浦区| 论坛| 葵青区| 长岭县| 澜沧|