JavaScript对象创建方法

JavaScript object creation methods

本文关键字:方法 创建 对象 JavaScript      更新时间:2023-09-26

我一直在Stack Overflow和整个网络上搜索,以获得对我在一些遗留JavaScript中看到的东西的合理解释。到目前为止,我运气不太好,所以我决定采取极端的措施,实际发布一个问题。:-)

代码不是很旧,但它早于我参与项目的时间,(当然)最初创建它的开发人员在我到达这里之前就离开了。

所以我们开始了:

通常,当我在查看创建JavaScript"类"的@代码时,我会看到类似的内容:

var SomeClass = function() { ..stuff.. }
...other code...
var objSomeClass = new SomeClass();

同样熟悉的还有JavaScript文字:

var someLiteral = { ..stuff.. }
...other code...
var someResult = someLiteral.someFunction();

我在遗留代码中看到的似乎是这两种风格的结合,我以前从未见过有人这样做。所以我们得到的是:

var someLiteral = { ..stuff.. }
...other code...
var objSomeLiteral = new someLiteral();

此外,在相同的代码中还有这样的声明:

function doStuff() { ..stuff.. }
...other code...
var objDoStuff = new doStuff();

再说一遍,我以前从未见过有人写这样的代码。

这是语义上不正确的代码,还是有一些我不知道的合理理由这样做?这总是可能的,在这一点上,我并不声称JavaScript的专业知识。

这个代码确实有效,但如果它不是"好"代码,那么我会想重写它。因为我就是这样的肛门。:-)

谢谢!

new <Object>是一个语法错误。这根本不是有效的JavaScript。new的操作数必须是一个函数。

同样,像您在"类"构造示例中所展示的那样,使用函数作为构造函数也是一种非常常见的做法。