在箭头函数中调用 this 时,仅仅是简单的沿着作用域链向上寻找,找到最近的一个 this 拿来使用
箭头函数在定义之后,this 就不会发生改变了,无论用什么样的方式调用它,this 都不会改变;
function make () {
return ()=>{
console.log(this);
}
}
const testFunc = make.call({ name:'foo' });
testFunc(); //=> { name:'foo' }
testFunc.call({ name:'bar' }); //=> { name:'foo' }
箭头函数中没有自动绑定的局部变量,包括:this,arguments,super(ES6),new.target(ES6)……
在普通函数中,会自动绑定上的各种局部变量,箭头函数都是十分单纯的沿着作用域链向上寻找……
function foo() {
setTimeout( () => {
console.log("args:", arguments);
},100);
}
foo( 2, 4, 6, 8 );
// args: [2, 4, 6, 8]
//箭头函数中可以利用展开运算符来接收参数
const testFunc = (...args)=>{
console.log(args) //数组形式输出参数
}
function make () {
var self = this;
return function () {
console.log(self);
}
}
//或者
function make () {
return function () {
console.log(this);
}.bind(this);
}
最后编辑于 :2018.04.03 10:15:16
©著作权归作者所有,转载或内容合作请联系作者 平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。