gpt4 book ai didi

javascript - 我什么时候使用函数借用?

转载 作者:行者123 更新时间:2023-12-05 00:34:38 24 4
gpt4 key购买 nike

函数借用是从对象中借用函数而不是重新定义它;但我为什么要这样做。我们可以有一个通用函数,对象可以进一步使用它们。更准确地说;当我可以像在代码 #2 中那样编码时,我什么时候使用代码 #1:
代码 #1

let car1 = {
speed: 80,
getSpeed: function () {
return this.speed;
},
};
let car2 = {
speed: 60,
};
console.log(car1.getSpeed());
console.log(car1.getSpeed.call(car2));
代码 #2
function getSpeed() {
return this.speed;
}
let car1 = {
speed: 80,
}
let car2 = {
speed: 60,
}
console.log(getSpeed.call(car1));
console.log(getSpeed.call(car2));

最佳答案

当您已经为对象定义了一个方法(直接或通过原型(prototype)链),并且您希望能够将它与没有定义该方法的类似对象一起使用时,使用函数借用。
这是您的代码#1 中的情况——getSpeed() 不是使用原型(prototype)继承或类。方法直接在 car1 中定义.而不是复制 car2 中的代码, 你可以从 car1 借.
您通常不会从头开始以这种方式设计东西。要么使用代码 #2 中的普通函数,要么使用 car1car2从同一个原型(prototype)继承。
函数借用通常只是糟糕的初始设计的一种解决方法。你可以在代码中看到它

nodes = document.getElementsByClassName("foo");
result = [].prototype.map.call(nodes, someFunction);
因为 NodeList原型(prototype)没有自己的 map()功能。

关于javascript - 我什么时候使用函数借用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69892281/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com