bind,call,apply的区别

Posted 嘿嘿林子伟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的区别的主要内容,如果未能解决你的问题,请参考以下文章

apply,call,bind的区别

call/apply/bind的区别

apply,call,bind区别

call() apply() bind()方法的作用和区别!

call 和 apply 和 bind的区别

js call()apply()bind()的区别和使用