这段代码中的 this 是多少?
this 的值到底是什么?一次说清楚
你可能遇到过这样的 JS 面试题: var obj = { foo: function(){ console.log(this) } } var bar = obj.foo obj.foo() // 打印出的 this 是 obj bar() // 打印出的 this 是 window 请解释最后两行函数的值为什么不一样。 ------- 初学者关于 this 的理解一直很模糊。今天这篇文章就要一次讲清楚了。 而且这个解释,你在别的地方看不到。看懂这篇文章,所有关于 this 的面试题,都是小菜。 有用请点赞。 首先需要从函数的调用开始讲起。 JS(ES5)里面有三种函数调用形式: func(p1, p2) obj.child.method(p1, p2) func.call(context, p1, p2) // 先不讲 apply 一般,初学者都知道前两种形式,而且认为前两种形式「优于」第三种形式。
Last updated