gpt4 book ai didi

javascript - JS 函数 : prototype overriding vs prototype extension

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:17:57 25 4
gpt4 key购买 nike

有时我会看到这样的 JavaScript 代码:

funciton MyClass () {
// some initialization
}

MyClass.prototype = {
constructor: MyClass,

// other functions
}

重写函数原型(prototype)与像这样扩展原型(prototype)相比有什么好处:

function MyClass () {
// some initialization
}

MyClass.prototype.doStuff = function () {
// some code
}

在第一个例子中(覆盖原型(prototype))我们必须另外手动指定构造函数,但在第二个例子中构造函数将自动指向函数。我觉得第一个例子好一点,因为我们不需要手动指定构造函数

那么为什么有些人使用第一种方式呢?有什么好处吗?

谢谢

最佳答案

第一个示例将删除任何先前定义的原型(prototype)(如果有的话)。第二种方法将使它们保持不变(包括构造函数引用),但如果您有很多原型(prototype),代码量可能会更大。

值得注意的是,如果您重写原型(prototype)对象,您不必指定构造函数引用,这只是为了方便而不经常使用。

除此之外 – 区别仅在于语法,IMO 解释为什么有些人喜欢另一种方式就像解释为什么有些人喜欢在他们的代码中使用 2 或 4 个缩进空格 – 这只是一种编码风格 .

关于javascript - JS 函数 : prototype overriding vs prototype extension,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20775883/

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