RV.jpg)
贪玩蓝月真好玩,但学习还是要继续的
我们平时调用一个js函数是这样的
|------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 | hljs javascript var ruben = { say: function (word) { if (this.name == null) { this.name = "ruben"; } return this.name + "说:" + word; } } var whatRubenSaid = ruben.say("做猪呢,最重要的是开心"); console.log(whatRubenSaid); |
输出结果

那么我们现在新创建一个对象
|---------------|------------------------------------------------------|
| 1 2 3 | hljs javascript var Achao = { name: "Achao" } |
如果我们想在Achao里调用ruben里的say函数
我们就可以这样
|-------------|-------------------------------------------------------------------------------------------------------------------------------|
| 1 2 | hljs javascript var whatAchaoSaid = ruben.say.call(Achao, "村头恶霸华农、刑部尚书手工耿、木瓜大盗莫叔、非洲人犯朱一旦") console.log(whatAchaoSaid); |
输出结果

这就是call函数的使用方式和场景了
那么还有一个apply呢?
和call不同,它调用方法给的参数需要是一个数组
|-------------------|------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 | hljs javascript var Hegel = { name: "黑格尔" } var whatHegelSaid = ruben.say.apply(Hegel, ["只有永远躺在泥坑里的人,才不会再掉进坑里。"]) console.log(whatHegelSaid); |

否则会抛出异常

51工具盒子