javascript的call()方法与apply()方法的理解

先看一段代码

function cat() {

}
cat.prototype={
    food:'fish',
    say:function () {
        console.log('I love '+this.food);
    }
};

var blackCat = new cat();
blackCat.say();

这时,控制台输出 I love fish
若此时,有另一个对象
Dog={food:'bones and shit'};

dog对象没有say方法,这时我们可以这样写
blackCat.say.call(Dog);
此时,控制台输出 I love bones and shit

总的来说,就是将前者绑定到call中的对象,让call中的对象具备前者的方法和属性,或者说是继承。
obj.call(thisObj,arg1,arg2,...);
obj.apply(thisObj,[arg1,arg2,...]);
apply与call作用一样,只是参数不同,call接受连续参数,apply接受数组参数。

记住JavaScript里面一切皆对象


posted @ 2017-12-16 16:54  JennySchecter  阅读(192)  评论(0编辑  收藏  举报