class foo {
data = {};
show = true;
cancel = {
click: function (data?: any) {
console.log("click cancel", data);
this.show = false// todo, When i call "myfoo.cancel.click()", how can i change foo.show to false? If not pass myfoo into click() would be better.
},
};
}
let myfoo = new foo();
console.log(myfoo.show);
myfoo.cancel.click();
console.log(myfoo.show);
輸出:
true
click cancel undefined
true
當我打電話時myfoo.cancel.click(),我怎樣才能將 foo.show 更改為false?我希望輸出可以是:
true
click cancel undefined
false
順便說一句,在我閱讀How to access the correct thisinside a callback之后,我知道不應該使用this.
如果不傳入myfoo會cancel.click()更好。很多彈窗組件中使用的點擊功能,所有組件的取消按鈕呼叫cancel.click(),所以就不多寫了cancel.click()。
uj5u.com熱心網友回復:
將您的click功能更改為箭頭功能:
class foo {
data = {};
show = true;
cancel = {
click: (data?: any) => {
console.log("click cancel", data);
this.show = false
},
};
}
let myfoo = new foo();
console.log(myfoo.show);
myfoo.cancel.click();
console.log(myfoo.show);
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/521502.html
標籤:打字稿班级
