Egret社区

求教()=>{}和function(){}的区别

2016-9-6 16:21
161710
1银子
如题

最佳答案

查看完整内容

感觉运行结果一样,但TS开发工具的代码联想结果不同,感觉TS开发工具一般不能有效识别function class SomeClass{ public something:any public someFunction(){ this.something.addEventListener(SOME_EVENT, ()=>{ // 这里写this会自动联想出SomeClass的各种property和method }, this); this.something.addEventListener(SOME_EVENT, function(){ // 这里写this感觉就跟个any一样,没有联想。并且这里 ...
分享到 :
0 人收藏
如果不是为了山顶,我又何须踏土碾泥

10 个回复

倒序浏览
binbinye2  初窥堂奥 | 2016-9-6 16:21:48
纯白的猪 发表于 2016-9-7 13:38
可以详细解释一下么? 或者提供一些url做为参考?
我在代码里输出  ()=>{console.log(this)}  与 functio ...

感觉运行结果一样,但TS开发工具的代码联想结果不同,感觉TS开发工具一般不能有效识别function

class SomeClass{
  public something:any
  public someFunction(){
    this.something.addEventListener(SOME_EVENT, ()=>{
    // 这里写this会自动联想出SomeClass的各种property和method
    }, this);
    this.something.addEventListener(SOME_EVENT, function(){
    // 这里写this感觉就跟个any一样,没有联想。并且这里面引用一些class、参数什么的,查那些东西的引用  会漏掉这里的
    }, this);
  }
}

我用的开发工具是Sublime加微软官方的TS插件。
综上所述开发TS还是用()=>{}比较好,function(){}其实算是js语法,结果相同,但一些开发工具支持方面有问题。。

点评

涨知识了  发表于 2016-9-8 11:54
纯白的猪  斑竹 | 2016-9-6 16:31:30
没区别 写法不同
wongg  登堂入室 | 2016-9-7 11:47:58
区别在于,可以装一波感觉自己屌屌的样子。
sugus  炉火纯青 | 2016-9-7 11:50:30
还是有区别的,this的指向会改变的

点评

专业  发表于 2016-9-7 12:52
专业  发表于 2016-9-7 12:52
纯白的猪  斑竹 | 2016-9-7 13:38:53
sugus 发表于 2016-9-7 11:50
还是有区别的,this的指向会改变的

可以详细解释一下么? 或者提供一些url做为参考?
我在代码里输出  ()=>{console.log(this)}  与 function(){console.log(this)}
两者打印出来的this都是同一个
sugus  炉火纯青 | 2016-9-7 14:28:25
binbinye2 发表于 2016-9-7 14:26
感觉运行结果一样,但TS开发工具的代码联想结果不同,感觉TS开发工具一般不能有效识别function

class So ...

正解。function(){},在ts中,一些事件监听也是识别不了的,反而()=>{}更好一些。
纯白的猪  斑竹 | 2016-9-7 16:22:24
binbinye2 发表于 2016-9-7 14:26
感觉运行结果一样,但TS开发工具的代码联想结果不同,感觉TS开发工具一般不能有效识别function

class So ...

感谢
没有注意到这一层
之前是C#转过来的  一直用的也是()=>{}
涨姿势了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部