apply() 和call()最大的用处

传递参数并非apply()和call()真正的用武之地;它们真正强大的地方是能够扩充函数
赖以运行的作用域。下面来看一个例子。

 

window.color = "red";
var o = { color: "blue" };
function sayColor(){
  alert(this.color);
}
sayColor(); //red
sayColor.call(this); //red
sayColor.call(window); //red
sayColor.call(o); //blue

 使用call()(或apply())来扩充作用域的最大好处,就是对象不需要与方法有任何耦合关系。

posted @ 2016-05-06 15:44  jinzhu4147  阅读(150)  评论(0编辑  收藏  举报