bind,call,apply的区别

一年好景君须记,最是橙黄橘绿时。这篇文章主要讲述bind,call,apply的区别相关的知识,希望能为你提供帮助。

function cat(){
}
cat.prototype={
food:"fish",
say: function(){
alert("I love "+this.food);
}
}


var blackCat = new cat;
blackCat.say();
但是如果我们有一个对象whiteDog = {food:"bone"},我们不想对它重新定义say方法,那么我们可以通过call或apply用blackCat的say方法:blackCat.say.call(whiteDog);

如果我们想以func()的方式调用,就可以使用bind:
var func = cat.prototype.say.bind(whiteDog);
func(); //即可以达到和call,apply同样效果
 
【bind,call,apply的区别】



















    推荐阅读