1. 程式人生 > >bind,call,apply的區別

bind,call,apply的區別

ply 區別 say ood func .proto 方法 pro one

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的區別