ES6中this和箭头方法
2018-01-22 13:53
330 查看
之前写多页面应用时,一个页面就是全部,this常常默认是全局对象,但this的正确理解不限于此,特别是大型复杂结构的脚本。
例如:
当我们调用cf1方法时,出现错误:
传统形式的代码中,回调函数常常用到,这个时候的this就容易分不清。
ECMAScript 6 箭头语法为我们提供了一个工具,箭头函数能保存函数创建时的 this值,而不是调用时的值:
例如:
上面cf2使用了箭头语法,这个时候我们的this就是函数创建时的值。
另外一种方式是使用bind,例如:
上面cf3,我们手动绑定this为创建时的值。
更过内容,欢迎加入TypeScript 快速入门 的Chat
![](http://img.blog.csdn.net/20180122135232439?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcm9jc2hhdw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20180122135250754?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcm9jc2hhdw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
阅读原文
例如:
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和箭头方法
- win10完美去除快捷方式小箭头的方法
- win10完美去除快捷方式小箭头的方法
- vs2005的使用,莫名其妙的源代码编辑器的空格都变成了小点,还有箭头。解决方法!
- 批量删除Word中向下的小箭头和回车的方法
- 引用 引用 去掉桌面上快捷方式的箭头的方法
- win7桌面快捷方式箭头的去除与恢复的方法
- CSS小箭头的方法及原理
- iOS重写drawRect方法实现带箭头的View
- 去除Vista快捷图标小箭头的最完美方法
- Easyui - tooltip 箭头在IE下无法显示的解决方法
- 3种用CSS控制border的颜色实现向下的小箭头的方法
- 隐藏select边框及下接箭头方法
- win10系统桌面图标变为白色方框和去除桌面图标快捷方式小箭头的方法
- Word出现灰色的很多小点点、箭头或方框的解决方法~
- 关于取消number数字框上下箭头的方法
- 如何去掉桌面图标小箭头的方法介绍
- 清除桌面应用软件的快捷方式小箭头的两种实用方法
- windows7下消除快捷键箭头的方法
- VS编辑器出现很多圆点或箭头的解决方法