工作日志
来源:互联网 发布:数据标准化 人民银行 编辑:程序博客网 时间:2024/06/07 00:50
今天大概看了下typescript,然后尝试着用它写了一个TCP server的程序。其中有这么一段程序比较有趣。
class a { methodA(){ do something } methodB(){ var server = net.createServer((socket) => { socket.on('data', () => { this.methodA(); } }); }}
开始并不是这么写的,回调函数用的是这种写法
var server = net.createServer(function(socket) { socket.on('data', function() { this.methodA(); } });
这样写this.methodA是找不到的。因为这时候this指代的并不是class a。问题是为什么用了第一种写法this就可以指代class a了,不太明白。看了下typescript编译成的js代码,在methodB中会声明一个_this=this。然后在回调函数中使用_this.methodA()。
typescript中声明的变量、函数类型只会在编译过程中进行检查,运行时其实并不做检查(也没法进行检查)。目前感觉使用typescript可以简化类的开发。
另外,在typescript中直接引用nodejs的包是会报找不到module错误的(起码在vs code中会报这个错误,没有编译不知道编译会不会报这个错误)。必须要安装npm install –save-dev @types/node。
0 0
- 工作日志
- 工作日志
- 工作日志
- 工作日志
- 工作日志
- 工作日志
- 工作日志
- 工作日志
- 工作日志
- 工作日志
- 工作日志
- 工作日志
- 工作日志
- 工作日志
- 工作日志
- 工作日志
- 工作日志
- 工作日志
- linux系统之网络管理(1)
- listview显示不同布局的一个坑(记一下,以防后面又忘了)
- 51nod1289
- dp总结
- angularJs的表单验证
- 工作日志
- 补间动画
- IDEAL添加jia
- 严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderLis
- HTTP基础知识
- 控件-Win Forms窗体控件
- cocos2d-x 3.X 使用Scale9Sprite
- 用ShareREC实现Unity手游屏幕录制
- C++实验5-项目4:字符串