将undefined赋值给构造函数中的属性

Assigning undefined to a property in constructor

本文关键字:属性 构造函数 undefined 赋值      更新时间:2023-09-26

我读到你最好有一个固定的对象结构,只需要改变属性值,而不是删除/添加属性本身,以便JavaScript引擎更好地优化它,像这样:

var MyClass = function(){
    this.prop = undefined;
}    
var a = new MyClass();

我发现这相当混乱,是一个阴暗的JavaScript hack,虽然可以使用它,如果它真的提高了应用程序的运行。

但是,我对在前端应用程序中使用这种技巧有点怀疑,即使它是一个由100个类和组件组成的复杂应用程序。

所以,问题是,它在实践中有意义赋予属性初始值的构造函数?或者它更像是一种假想的性能优化,几乎不会被注意到?

在构造函数中分配属性初始值在实践中有意义吗?

是的,当然。对于优化编译器和人类读者来说,它确实提高了清晰度,这在较大的代码库中尤为重要。

然而,如果您试图在没有初始化属性的情况下构造对象,则可能暗示存在更普遍的设计缺陷。当你甚至不知道合理的初始值时,也许你不应该实例化任何东西,直到你知道它们。