我为什么要申报
var foo = {}
代替
var foo = new Object();
如果它们相似,在 JavaScript 中?是否同样适用于
foo[0].bar = new Function(){ "return hello"};
就像在
foo[0].bar = function(){return "hello"};
? 是效率问题吗?有区别吗?
我为什么要申报
var foo = {}
代替
var foo = new Object();
如果它们相似,在 JavaScript 中?是否同样适用于
foo[0].bar = new Function(){ "return hello"};
就像在
foo[0].bar = function(){return "hello"};
? 是效率问题吗?有区别吗?
我记得从w3fools.com阅读了以下内容:
personObj=new Object();
这是对
new
关键字的错误和不必要的使用。他们应该使用并提倡使用对象字面量语法 ({}
) 来创建新对象。
它没有说为什么,只是说我们应该。
实际上
var foo = {}
和
var foo = new Object();
做同样的事情(两个表达式都创建一个空Object
的),但最好使用较短的版本(object literal
),它需要更少的空间时间来编写,另一件事是使用object literal
您可以创建和分配值/属性给 anObject
如下
person = {
property1 : "Hello"
};
但是使用new Object()
您需要先创建它,然后按如下方式分配值/属性
person = new Object();
person.property1 = "Hello";
在您的第二个示例 ( function vs new function
) 中存在差异,因为new Function
您slower
可以在此处查看此测试。
不,没有任何效率增加或减少,它只是像使用的简写?:如果/否则..
我总是使用简写 {},但如果您打算让初学者阅读您的代码,您可能需要使用 new Object()。
唯一可能重要的是,您是否编写了一个动态生成此类 javascript 的程序……或者您为大学中的某位老师写作,该老师似乎有某种标准,有时不太有意义。
new Function()
构造函数实际上并不是这样工作的。
它被称为:
var myFunc = new Function("param1", "param2", "message", "/*function-body-as-a-string*/ console.log(message); return param1 + \"=\" + param2;");
即:非常愚蠢,容易出错,愚蠢缓慢(使用评估)和安全漏洞。不要使用它。