ES6中this和箭头方法
2018-01-22 00:00
169 查看
之前写多页面应用时,一个页面就是全部,this常常默认是全局对象,但this的正确理解不限于此,特别是大型复杂结构的脚本。
例如:
当我们调用cf1方法时,出现错误:
传统形式的代码中,回调函数常常用到,这个时候的this就容易分不清。
ECMAScript 6 箭头语法为我们提供了一个工具,箭头函数能保存函数创建时的 this值,而不是调用时的值:
例如:
上面cf2使用了箭头语法,这个时候我们的this就是函数创建时的值。
另外一种方式是使用bind,例如:
上面cf3,我们手动绑定this为创建时的值。
更过内容,欢迎加入TypeScript 快速入门 的Chat
阅读原文
例如:
export class ThisScope { txt:string = "hello this scope" cf1 () { return function() { this.showInfo() } } showInfo() { console.log(this.txt) } }
当我们调用cf1方法时,出现错误:
> Uncaught TypeError: Cannot read property 'showInfo' of undefined at ThisScope.ts:5 at Object.defineProperty.value (main.ts:11) at __webpack_require__ (bootstrap 87e8701…:19) at Object.defineProperty.value (bootstrap 87e8701…:62) at bootstrap 87e8701…:62
传统形式的代码中,回调函数常常用到,这个时候的this就容易分不清。
ECMAScript 6 箭头语法为我们提供了一个工具,箭头函数能保存函数创建时的 this值,而不是调用时的值:
例如:
export class ThisScope { txt:string = "hello this scope" cf1() { return function() { this.showInfo() } } cf2() { return () => {this.showInfo()} } showInfo() { console.log(this.txt) } }
上面cf2使用了箭头语法,这个时候我们的this就是函数创建时的值。
另外一种方式是使用bind,例如:
export class ThisScope { txt:string = "hello this scope" cf1() { return function() { this.showInfo() } } cf2() { return () => {this.showInfo()} } cf3() { return function() { this.showInfo() }.bind(this) } showInfo() { console.log(this.txt) } }
上面cf3,我们手动绑定this为创建时的值。
更过内容,欢迎加入TypeScript 快速入门 的Chat
阅读原文
相关文章推荐
- ES6中this和箭头方法
- 在linux中使用sqlplus的上下左右箭头的方法
- Word出现很多灰色小点点和箭头的解决方法:
- win7 当去掉图标小箭头的时候右键管理时无效的解决方法。
- 清除桌面应用软件的快捷方式小箭头的两种实用方法
- 去掉win7快捷方式小箭头的正确方法
- 在linux中使用sqlplus的上下左右箭头的方法
- 去除input type=“number”上下箭头的方法
- win10完美去除快捷方式小箭头的方法
- vs2005的使用,莫名其妙的源代码编辑器的空格都变成了小点,还有箭头。解决方法!
- css美化select下拉列表(更换下拉箭头)的方法
- 清除桌面图标小箭头方法
- GDI+ 画箭头线的方法
- 天龙2 场景地图人物 方向箭头 方法
- 小方法教你让PPT的箭头跟着目标走
- 隐藏select边框及下拉箭头方法
- VC中custom symbol的方法(For MO)制作带箭头的线
- 手动去除Windows 7快捷方式小箭头的方法,清除快捷方式小箭头
- Arcgis for js开发之直线、圆、箭头、多边形、集结地等绘制方法
- ToolBar 侧滑箭头修改 导航菜单 三条横线 的方法