在javascript中创建对象的不同方法
以下两种方法的区别是什么在javascript中创建对象的不同方法,javascript,Javascript,以下两种方法的区别是什么 obj = new Object(); OR obj = {}; 在我的代码中,我被要求用第二个符号替换第一个符号,代码非常庞大。替换它会导致任何问题吗?没有区别。前者使用对象构造函数,而后者是一个文本,但结果对象没有区别。 JavaScript中的对象 1- var obj = { key1 : value1 , key2Asfunction : funciton1(){} }; obj.key1; obj.key2Asfunction(); 如果您也需要
obj = new Object();
OR
obj = {};
在我的代码中,我被要求用第二个符号替换第一个符号,代码非常庞大。替换它会导致任何问题吗?没有区别。前者使用
对象
构造函数,而后者是一个文本,但结果对象没有区别。
JavaScript中的对象
1- var obj = { key1 : value1 , key2Asfunction : funciton1(){} };
obj.key1;
obj.key2Asfunction();
如果您也需要如何创建jquery框架的结构,我可以提供帮助
Regrads:)根据这本书,使用内置构造函数(obj=newobject();)是一种反模式,原因如下:
- 键入比文本长(obj={};)
- literal是首选,因为它强调对象是可变散列
- 范围解析-您可能已经使用相同的名称创建了自己的(本地)构造函数(解释器需要查找范围链)
- 我将回答第二个问题:
更换它会导致任何问题吗
不,不会引起任何问题
例如,如果您有以下行:
var obj = new Object("a");
//...code...
obj = new Object("b");
//...code...
更改此选项将产生相同的结果,且不会产生任何影响:
var obj = { "a": 1 };
//...code...
obj = { "b": 2 };
//...code...
通过将变量赋值为
=
您正在用新值覆盖它包含的任何内容。除非有人在代码中的某个地方重新定义了对象;)@雅各布:我想你是对的,但我怀疑有人会这么做。@雅各布:我使用新的Obejct多次重新初始化同一个对象。用{}替换它也可以吗。意思是同一个对象的重构我想指向新对象是的,可以。我的评论主要是一个笑话,但也暗示使用对象是一个坏主意,因为它遵循语言的正常范围解析规则。唯一可能给你带来麻烦的是,如果有人愚蠢到写了这样的东西:Object=function(){alert('Haha,Object不是你想象的那样!”);}
这似乎并没有真正回答眼前的问题。我认为这很有帮助,但我忘了提到这两种方式。塔克斯·费利克斯
var obj = { "a": 1 };
//...code...
obj = { "b": 2 };
//...code...