亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在異步原型函數中未定義 this

在異步原型函數中未定義 this

一只甜甜圈 2022-12-29 16:25:41
我的問題與此類似。但我想將 async 關鍵字放在原型函數中,而不是構造函數中?!皌his”在原型函數 saySomething 中未定義。為什么?我如何在課堂上使用異步?var Person =  function() {  console.log("CALLED PERSON")};Person.prototype.saySomething = async () => {  console.log(this);//undefined};(async function(){  var ape = new Person();  await ape.saySomething();}());
查看完整描述

1 回答

?
慕俠2389804

TA貢獻1719條經驗 獲得超6個贊

你不應該使用箭頭函數表達式(因為它沒有自己的綁定this),而是一個正則函數表達式

var Person =  function() {

  console.log("CALLED PERSON")

};


Person.prototype.saySomething = async function() {

  console.log(this);

};


(async function(){

  var ape = new Person();

  await ape.saySomething();

}());


或另一個使用類的示例(如@nickf 所建議的):


class Person {

  constructor() {

    console.log("CALLED PERSON")

  }

  

  async saySomething() {

    console.log(this);

  };

}


(async function(){

  var ape = new Person();

  await ape.saySomething();

}());


查看完整回答
反對 回復 2022-12-29
  • 1 回答
  • 0 關注
  • 88 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號