call 是什么意思?

2017-03-19  本文已影响0人  饥人谷_Vomx

有两个对象,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)

https://www.zhihu.com/question/20289071

上一篇 下一篇

猜你喜欢

热点阅读