call的本质

1 var obj = {};
2 
3 var f = function () {
4   return this;
5 };
6 
7 f() === window // true

8 f.call(obj) === obj // true

f的内部有this

this的指向不唯一,可变化

在全局环境运行f,this指向全局环境

使用call方法后:

f.call(obj)

对f使用call方法后,f的运行环境变成了obj,this指向obj

 

故而:

对某函数使用call方法,改变此函数内部this的指向后运行

 

posted @ 2021-01-23 22:03  呈心者  阅读(67)  评论(0编辑  收藏  举报