贪玩蓝月真好玩,但学习还是要继续的
我们平时调用一个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);
|
否则会抛出异常