es6和es5中的this指向
来源:互联网 发布:unity3d难学吗 编辑:程序博客网 时间:2024/06/07 00:36
先看一段代码:
var name = "window";var obj = { name: 'obj', //普通函数 one: function(){ console.log(this.name) }, //箭头函数 two: ()=> { console.log(this.name) }, //普通函数中的箭头函数 three: function(){ (()=>{ console.log(this.name) })() }, //多层箭头函数 four: ()=> { (()=>{ console.log(this.name) })() }}obj.one(); //obj obj.two(); //window obj.three(); //objobj.four() //window
说明:
1、
①普通函数中的this总是指向它的直接调用者;
②箭头函数中的this是在定义函数的时候绑定,而不是在执行函数的时候绑定。
2、
①比如上面的 obj.one();直接调用者是obj,因此this指向obj
②箭头函数中的this指向是固定的,并不是因为箭头函数内部有绑定this的机制,实际原因是箭头函数内部没有this,箭头函数的this是在定义时就绑定的,它的this就是箭头函数所处的对象的所处作用域。
比如obj.three();箭头函数所在的对象是函数three,函数three处于obj的作用域中,因此this指向obj;
比如obj.four();箭头函数所在的对象是obj,obj处于window的作用域中因此this指向window。
阅读全文
0 0
- es6和es5中的this指向
- ES6和ES5中的遍历
- es6与es5 中this的区别
- React: ES5 和 ES6 比较
- ES6和ES5特性对比
- js中的this指向和改变this指向的方法
- ES6箭头表达式this指向
- es6箭头函数this指向
- es6改进es5中的一些坑
- es6改进es5中的一些坑
- JavaScript中的异步编程-ES5 & ES6
- ES5/ES6
- setInterval和setTImeout中的this指向问题
- 理解 ES5, ES2015(ES6) 和 TypeScript
- React使用ES6和ES5写法对比
- javascript开发:ES5与ES6的“this”深入分析
- ES6箭头函数this指向问题
- ES6 箭头函数this指向问题
- CF 408C Triangle 勾股数+简单几何
- 与HDFS命令交互时如何指定文件和目录确切位置的URI
- LintCode:交换链表当中两个节点
- mac/linux中配置ssh的ip别名访问
- [简单题]Who_like_it? Python实现
- es6和es5中的this指向
- PHOTOSHOP常用快捷键
- Java常见考题(下)
- codevs 1324 昂贵的聘礼
- SuperParent算法-一种半朴素贝叶斯网络算法
- Selenium自动测试工具-WebDriver
- 过程也是一种美
- hihoCoder 1582 Territorial Dispute
- MySQL编译安装