gpt4 book ai didi

javascript - 函数 MyClass(){ ... }; MyClass.prototype = MyClass; ——被认为是有害的?

转载 作者:行者123 更新时间:2023-11-30 13:37:29 25 4
gpt4 key购买 nike

显然,以这种方式实现基于类的实例方法是 JavaScript 中的一个习惯用法:

function MyClass(){...}
MyClass.prototype.methodA = function(){...}
MyClass.prototype.methodB = function(){...}
...

为什么人们不使用这种更简洁的形式:

function MyClass(){...}
MyClass.prototype = MyClass;
MyClass.methodA = function(){...}
MyClass.methodB = function(){...}

如果 MyClass 应该从某个基类继承,这显然是行不通的(在这种情况下,通常应该将原型(prototype)设置为基类的新实例)。

然而,近来深度继承层次结构越来越少(多亏了鸭子类型和混合等)。

我错过了什么吗?

MyClass.prototype = MyClass 是否使 .constuctor 比现在更乱?

它是否以不好的方式干扰了 typeof、instanceof,甚至 getPrototypeOf()?

它应该被推广,还是被认为是有害的?

最佳答案

也许是因为有一种更简洁的形式?

MyClass.prototype = {
methodA: function(){},
methodB: function(){}
};

你拥有的方法越多,这就变得越清晰,除此之外,你只是重写了默认原型(prototype)及其上的任何内容。

关于javascript - 函数 MyClass(){ ... }; MyClass.prototype = MyClass; ——被认为是有害的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4178588/

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