絕地?zé)o雙
2023-03-10 15:58:32
在 js 中,我使用以下代碼function m() { console.log(this)}m()這返回當(dāng)前上下文但是在 ts 中,我使用下面的代碼,這個返回 undefinefunction m() { // @ts-ignore console.log(this)}m()我希望在打字稿中使用這個獲取當(dāng)前上下文,怎么辦?
4 回答

qq_花開花謝_0
TA貢獻(xiàn)1835條經(jīng)驗 獲得超7個贊
你可以像這樣嘗試,
const that = this;
function m() {
console.log(that);
}
m();

慕尼黑5688855
TA貢獻(xiàn)1848條經(jīng)驗 獲得超2個贊
就像其他答案告訴你的那樣,這是因為use strict打字稿。為了能夠擁有this上下文,您可以(但不應(yīng)該)使用new關(guān)鍵字。
操場
function m() {
// @ts-ignore
console.log(this);
}
// @ts-ignore
new m();

尚方寶劍之說
TA貢獻(xiàn)1788條經(jīng)驗 獲得超4個贊
這是因為默認(rèn)情況下在您的打字稿中使用“use strict”。
如果你在 js 中嘗試這個返回相同的 undefined
'use strict';
function m() {
console.log(this)
}
m()
添加回答
舉報
0/150
提交
取消