跳到主要内容
CNode

es中的关于this指针丢失问题

问答
Llinxiaoziruo发布于 8 年前最后回复 8 年前
635020

let a = { name: 'zaki', say: function() { console.log(this); console.log(this.name); } };

(function() { a.say(); //可以打印出符合期望的的this信息 let fn = a.say; fn(); // 不能打印出符合期望的this信息 })()

查看回复

回复 (6)

J
justjavac#18 年前

搜索 “js this” 你就找到答案了

J
justjavac#28 年前

js 最难(坑)的就是 this

L
linxiaoziruo#38 年前

感谢各位的回答,现在已经完全弄清楚了!

P
pretty-foam#48 年前

赋值a.say函数没执行就是一个匿名函数,匿名函数的this指向全局。我这样理解对不对?

Z
zhulinwei#58 年前
9
972389149#68 年前

class里的方法的this指向的是实例,你可以在构造函数里绑定一下this的指向 class = { constructor (){ this.say = this.say,bind(this); } }

参与回复

登录后即可参与回复。登录