普通函数与箭头函数的this
2018-02-03 14:59
176 查看
普通函数:
this指向函数调用时的对象;
箭头函数:
箭头函数根本没有自己的this,导致内部的this就是外层代码块的this。
由于箭头函数没有自己的this,所以当然也就不能用call()、apply()、bind()这些方法去改变this的指向。
正是因为它没有this,所以也就不能用作构造函数。
上述代码只有一个this,就是foo的this
this指向函数调用时的对象;
function foo() { return function() { return function() { return function(){ console.log('id:', this.id); }; }; }; } var id=1; var f = foo.call({id: 1}); var t1 = f.call({id: 2})()(); // id: 1 var t2 = f().call({id: 3})(); // id: 1 var t3 = f()().call({id: 4}); // id: 4
箭头函数:
箭头函数根本没有自己的this,导致内部的this就是外层代码块的this。
由于箭头函数没有自己的this,所以当然也就不能用call()、apply()、bind()这些方法去改变this的指向。
正是因为它没有this,所以也就不能用作构造函数。
function foo() { return () => { return () => { return () => { console.log('id:', this.id); }; }; }; } var f = foo.call({id: 1}); var t1 = f.call({id: 2})()(); // id: 1 var t2 = f().call({id: 3})(); // id: 1 var t3 = f()().call({id: 4}); // id: 1
上述代码只有一个this,就是foo的this
相关文章推荐
- js中箭头函数和普通函数this的区别
- 前端-浅谈箭头函数的this和普通函数的this
- ES6的箭头函数this和普通函数的this区别
- 箭头函数普通函数this
- ES6 箭头函数中的 this?(临时性保存)
- JavaScript中的普通函数和箭头函数
- ES6箭头函数this指向问题
- ES6 箭头函数+this
- es6箭头函数中this
- 箭头函数中的this
- es6的箭头函数的this问题
- JavaScript中的普通函数和箭头函数的区别和用法详解
- ES6学习记录之class, extends, super和箭头函数与this
- ES6语法---箭头函数/关于this指向
- JavaScript中的普通函数和箭头函数
- 箭头函数和普通函数的区别
- bind(this)和es6箭头函数
- 普通函数和箭头函数在事件中的作用域,使用不使用闭包的区别
- JS THIS 深入浅出 JavaScript 中的 this && 理解javascript函数调用和 this ** Javascript 普通函数和构造函数的区别
- ES6箭头函数中的this绑定问题