我一直在搜索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专业知识。
代码肯定有效,但如果它不是'好'的代码,那么我将要重写它。因为我只是这样的肛门。 : - )
谢谢!
答案 0 :(得分:2)
new <Object>
是语法错误。这根本就不是有效的JavaScript。 new
的操作数必须是一个函数。
同样使用函数作为你在“类”构造示例中显示的构造函数是一种非常常见的做法。