Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.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,在Javascript中,似乎所有的事情都可以通过几种方式完成。我的困惑在于对象的创建 第一种方式: var myObject = new Object(); myObject.name = 'Salko_Crni';; myObject.someFunction = function() { console.log(this.name); } 第二种方式: var myObject = { name: 'Salko_Crni', someFunction : fun

在Javascript中,似乎所有的事情都可以通过几种方式完成。我的困惑在于对象的创建

第一种方式:

var myObject = new Object();
myObject.name = 'Salko_Crni';;
myObject.someFunction = function() {
   console.log(this.name);
}
第二种方式:

var myObject = {
   name: 'Salko_Crni',    
   someFunction : function() {
      console.log(this.name);
   }
};
有些人提到使用更健壮的文本方法

在我看来(初学者),使用newobject()看起来更健壮


但是,我该告诉谁呢?

在设计模式方面没有对错之分。最好的选择是最适合你的情况。此外,实际上还有第三种使用数组语法实例化对象的方法

var YourObject = {};
YourObject['property_1'] = value;
YourObject['property_2'] = value;
YourObject['method'] = function(){ /* function code here */ }

归根结底,这是一个意见问题,但我不知道有什么好的理由更喜欢显式调用
新对象()
,因为使用对象文字将做完全相同的事情。一个显著的区别是第一种方法变异对象,而第二种方法只创建1。最近的发展趋势已经开始将变异视为一个性能瓶颈。第二种方法比较枯燥,因为变量名
myObject
只需提及一次。定义“健壮”。如果该对象是单例对象,我认为两种方法都可以。如果不是,那么IMO两者都不好,您应该转而使用构造函数和原型。什么是“数组语法”?您的示例代码与OP的代码没有什么不同。您的意思是括号表示法,一种访问对象的方法。括号、数组取决于您阅读的书籍。至于它有什么不同。绝对没有。这只是用于实例化对象的第三种设计模式。如果第三种模式与第一种模式没有区别,它将如何成为第三种模式?这样,我们还可以设计一种“第四种”方式:
var myObject={[“name”]:…,[“someFunction”]:…}(当您不需要动态属性名时,两者都是胡说八道)他的第一个示例使用“new”关键字。它不是一个对象文本。