首页 > JS里面 方法.call()是什么?

JS里面 方法.call()是什么?

JS里面 方法.call()是什么?


call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。
如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。

同apply类似,唯一区别是:

apply()把参数打包成Array再传入;
call()把参数按顺序传入。


改变执行上下文,相应的还有apply,bind

一个obj对象,有log方法和foo属性

var obj = {
log: function() {
console.log(this.foo);
},
foo: 'foo'
};

//可以直接打印obj的foo
console.log(obj.foo);
//或者调用obj的log方法打印
obj.log();

现在有了一个temp对象,也有foo属性
var temp = {
foo:'bar'
};

通过bind,apply,call,使用obj的log方法打印temp对象里的属性,切换上下文。
obj.log.bind(temp)();
obj.log.apply(temp);
obj.log.call(temp);

【热门文章】
【热门文章】