为了账号安全,请及时绑定邮箱和手机立即绑定

如何以与在 Javascript 中相同的方式在 Typescript 中访问“this”?

如何以与在 Javascript 中相同的方式在 Typescript 中访问“this”?

绝地无双 2023-03-10 15:58:32
在 js 中,我使用以下代码function m() {  console.log(this)}m()这返回当前上下文但是在 ts 中,我使用下面的代码,这个返回 undefinefunction m() {    // @ts-ignore    console.log(this)}m()我希望在打字稿中使用这个获取当前上下文,怎么办?
查看完整描述

4 回答

?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

你可以像这样尝试,


const that = this;


function m() {

  console.log(that);

}


m();


查看完整回答
反对 回复 2023-03-10
?
www说

TA贡献1775条经验 获得超8个赞

问题是,当您使用 TS 时,您是在严格模式下运行的,而在严格模式下,this一个函数是未定义的。

因此,对于严格模式函数,指定的 this 不会装箱到对象中,如果未指定,则 this 将是未定义的:

来源


查看完整回答
反对 回复 2023-03-10
?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

就像其他答案告诉你的那样,这是因为use strict打字稿。为了能够拥有this上下文,您可以(但不应该)使用new关键字。


操场


function m() {

  // @ts-ignore

  console.log(this);

}


// @ts-ignore

new m();


查看完整回答
反对 回复 2023-03-10
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

这是因为默认情况下在您的打字稿中使用“use strict”。


如果你在 js 中尝试这个返回相同的 undefined


'use strict';


function m() {

  console.log(this)

}


m()


查看完整回答
反对 回复 2023-03-10
  • 4 回答
  • 0 关注
  • 201 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号