看了非常多的网络教程,基本上知道call的主要作用就是改变this指向 ,更好的理解就是改变了我们需要执行函数的上下文,把上下文变成我们指定的函数或则对象。
function name() {
return {
name:"timliu",
sayName : function () {
console.log("My name is " + this.name);
}
}
}
name().sayName(); //My name is timliu
change = {
name: "狼叔"
}
name().sayName.call(change); //My name is 狼叔
name().sayName.apply(change); //My name is 狼叔