深入理解 js this 绑定 ( 无需死记硬背,尾部有总结和面试题解析 )
js 的 this 绑定问题,让多数新手懵逼,部分老手觉得恶心,这是因为this的绑定 ‘难以捉摸’,出错的时候还往往不知道为什么,相当反逻辑。 让我们考虑下面代码: var people = { name : "海洋饼干", getName : function(){ console.log(this.name); } }; window.onload = function(){ xxx.onclick = people.getName; }; 在平时搬砖时比较常见的this绑定问题,大家可能也写给或者遇到过,当xxx.onclick触发时,输出什么呢 ? 为了方便测试,我将代码简化: var people = { Name: "海洋饼干", getName : function(){ console.log(this.Name); } }; var bar = people.getName; bar(); // undefined 通过这个小例子带大家感受一下 this 恶心的地方,我最开始遇到这个问题的时候也是一脸懵逼,因为代码里的 this 在创建时指向非常明显啊,指向自己 people 对象,但是实际上指向 window 对象,这就是我马上要和大家说的 this 绑定规则 。 1 . this 什么是 this ?在讨论 this 绑定前,我们得先搞清楚this代表什么。