有两个对象,a和b
a有自己的方法do() 和属性attr:
b有自己的属性bttr
现在,b没有方法,但想要借用a的方法do()执行操作,该怎么办呢?
通过call来调用
a.call(b)
//先a执行方法,通过函数的call()方法来b call过来,执行方法。括号里的参数传递的是函数执行时的作用域,一般是this,也可以指定作用域。
后面可跟多个直接的参数,这个参数是当前函数的参数个数。
https://cnodejs.org/topic/52cb927a7a15a384667e2054
function cat(){};
cat.prototype={
food:"fish",
say:function(){alert("I love"+this.food)}
};
var blackCat = new cat;
blackCar.say();
现在有一只狗的对象,想要借用猫的方法来执行命令,于是:
whiteDog = {food:"bone"}
blackCar.say.call(whiteDog)
网友评论