this还是没搞懂,有大神可以解释一下不

张天师 发布于:2015-11-02 10:22 栏目:杂谈 浏览:537 评论:1
越看越模糊
沙发#
发布于:2015-11-02 10:26
我来说下吧,这是我上次的理解,不知道是不是准确。---say.call(window, "Hello world");为什么会传window对象,而下面的就会传person对象?
say执行时被推入window环境,此时上下文,this指代window,创建作用域
person.say的say执行时被推入person环境,此时上下文,this指代person,创建作用域
say.call(window, "Hello world"),将say的执行环境修改为window,上下文改变,this指代window,创建作用域
say.call(person, "Hello world"),将say的执行环境修改为person,上下文改变,this指代person,创建作用域
因此,call才具有修改作用域的表现,但其实是改变函数的执行环境,重新创建作用域。
总的来说,this就是当前执行环境的上下文,理解了这句就差不多了。
游客

返回顶部