Javascript对象合成

Javascript Object Composing

本文关键字:对象 Javascript      更新时间:2023-09-26

我想知道下面的JS在构建对象时有什么区别,或者如果有的话。这是一件风格/标准的事情吗?如果是,哪种最常见?

示例1:

var MyNamspace={选项:{test:10},someFunction:function(){alert("Hello");}}

示例2:

var MyNamespace={};MyNamespace.options={test:10};MyNamespace.someFunction=函数(){alert("你好");}

谢谢。

两者之间没有显著差异(尽管第二个可能稍微慢一点)。

第一个例子比较常见。

第一个MyNamspace缺少一个"e",否则没有功能差异。

第二种模式是在已经有一个对象具有要扩展的属性(如someFunc.prototype),但需要保留覆盖部分(MyNamespace = {};)时使用的。

第二个选项修改现有类型,因此在相等的情况下,第二个是修改现有类型的签名,就像您可以做的那样:MyClass.prototype.someFunction = function() { }

这就是JavaScript可以方便灵活的地方。