gpt4 book ai didi

javascript - 为什么在 JavaScript 继承中使用 new SuperClass() 是错误的?

转载 作者:行者123 更新时间:2023-12-03 12:09:47 25 4
gpt4 key购买 nike

参见 Mozilla's Guide 中的第 25 行。它说使用相当于的代码是错误的

SubType.prototype = new SuperType();

我的想法是,如果需要参数,则不能在没有任何参数的情况下调用 new SuperType()...但事实并非如此,因为 JavaScript 中没有函数签名。不带任何参数调用 new SuperType() 不应该导致参数未定义吗?我想这可能会导致错误。

更重要的是,指南说还有其他原因导致使用 SubType.prototype = new SuperType(); 是错误的。它们是什么?

最佳答案

大多数时候,您的构造函数不会像分配传递的值那么简单。有时,构造函数确实会对传递的数据进行一些操作,以使新对象达到理想状态。在这种情况下,默认为未定义会非常糟糕。

我想说这是一种不好的做法,因为这会使对象一开始就处于无效状态。当您的父类(super class)型处于无效状态时,您的所有子类型也将无效。

使用 Object.Create 始终是一个好习惯。每当你想建立对象之间的关系

关于javascript - 为什么在 JavaScript 继承中使用 new SuperClass() 是错误的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25007926/

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