Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中创建对象的不同方法_Javascript - Fatal编程技术网

在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...