有兩個對象,a和b
a有自己的方法do() 和屬性attr:
b有自己的屬性bttr
現(xiàn)在,b沒有方法,但想要借用a的方法do()執(zhí)行操作,該怎么辦呢?
通過call來調(diào)用
a.call(b)
//先a執(zhí)行方法,通過函數(shù)的call()方法來b call過來,執(zhí)行方法。括號里的參數(shù)傳遞的是函數(shù)執(zhí)行時的作用域,一般是this,也可以指定作用域。
后面可跟多個直接的參數(shù),這個參數(shù)是當(dāng)前函數(shù)的參數(shù)個數(shù)。
https://cnodejs.org/topic/52cb927a7a15a384667e2054
function cat(){};
cat.prototype={
food:"fish",
say:function(){alert("I love"+this.food)}
};
var blackCat = new cat;
blackCar.say();
現(xiàn)在有一只狗的對象,想要借用貓的方法來執(zhí)行命令,于是:
whiteDog = {food:"bone"}
blackCar.say.call(whiteDog)