首页 > 代码库 > js--call、箭头函数/匿名函数
js--call、箭头函数/匿名函数
js中的this指向(较简单的几种):
1.普通函数的this指向window;
2对象方法指向当前对象;
3.()=》箭头函数指向定义时的对象;
apply和call可以改变当前的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是不能改变的,相反,如果是普通匿名函数,就可以改变:
function foo() { return () => { function() { console.log(‘id:‘, this.id); }; }; } var f1 = foo.call({id: 1})()()//undefined; var f2 = foo().call({id: 1})()//undefined; var f3 = foo()().call({id: 1})//1
前两个this最后指向了window,最后一个指向{ID:1}
js--call、箭头函数/匿名函数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。