贪玩蓝月真好玩,但学习还是要继续的
我们平时调用一个js
函数是这样的
var ruben = { say: function (word) { if (this.name == null) { this.name = "ruben"; } return this.name + "说:" + word; } } var whatRubenSaid = ruben.say("做猪呢,最重要的是开心"); console.log(whatRubenSaid);
输出结果
那么我们现在新创建一个对象
var Achao = { name: "Achao" }
如果我们想在Achao
里调用ruben
里的say
函数
我们就可以这样
var whatAchaoSaid = ruben.say.call(Achao, "村头恶霸华农、刑部尚书手工耿、木瓜大盗莫叔、非洲人犯朱一旦") console.log(whatAchaoSaid);
输出结果
这就是call
函数的使用方式和场景了
那么还有一个apply
呢?
和call
不同,它调用方法给的参数需要是一个数组
var Hegel = { name: "黑格尔" } var whatHegelSaid = ruben.say.apply(Hegel, ["只有永远躺在泥坑里的人,才不会再掉进坑里。"]) console.log(whatHegelSaid);
否则会抛出异常