91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

使用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
北京市| 舟曲县| 赤壁市| 多伦县| 潍坊市| 淮安市| 家居| 云龙县| 金川县| 闽侯县| 温宿县| 寿宁县| 军事| 林州市| 绥德县| 淮南市| 定日县| 石楼县| 社旗县| 普格县| 迭部县| 山阳县| 汽车| 阳高县| 大同县| 福鼎市| 五指山市| 综艺| 庆阳市| 临桂县| 新泰市| 丰镇市| 清河县| 桐城市| 昔阳县| 蓬溪县| 信宜市| 青川县| 句容市| 祥云县| 资中县|