JavaScript对象

JavaScript对象,javascript,object,Javascript,Object,JavaScript中这两个代码之间的区别是什么 var obj = new Object(); obj.X = 10; obj.Y = 20; 以及 第二条是第一条的捷径。从功能上讲,它们是一样的。实际上什么都没有。嗯,这不完全正确,但是差别太小了,不值得一提。什么都没有。只是语法 您还可以使用: var obj = new Object(); obj["X"] = 10; obj["Y"] = 20; JavaScript1.2引入了对象文字格式{},以及数组文字格式[] 因此,更具可读

JavaScript中这两个代码之间的区别是什么

var obj = new Object();
obj.X = 10;
obj.Y = 20;
以及


第二条是第一条的捷径。从功能上讲,它们是一样的。

实际上什么都没有。嗯,这不完全正确,但是差别太小了,不值得一提。

什么都没有。只是语法

您还可以使用:

var obj = new Object();
obj["X"] = 10;
obj["Y"] = 20;

JavaScript1.2引入了对象文字格式
{}
,以及数组文字格式
[]


因此,更具可读性的变体
{X:10,Y:20}
在Netscape 3中不起作用!(哦,不!)

不一定是快捷方式,但语法不同。第二种称为JavaScript对象表示法或JSON。不,第二种不是JSON。JSON应该是{“X”:10,“Y”:20}。报价很重要。啊,对不起,你的确是对的。嗯,那叫什么?它只是“快捷对象语法”吗?@opello它被称为“对象文字”语法第一种情况的另一个重要特征是“对象”构造函数被调用,而第二种情况下它没有被调用。至少在Firefox中是这样的。@opello:真的吗?您是如何测试的?从技术上讲,在第二种情况下仍然会调用对象构造函数,但它将始终使用内置版本。如果您编写自己的对象函数,它将在第一种情况下被调用,但在第二种情况下不会被调用。我用一些简单的东西覆盖对象函数来测试它,比如:function(){alert('test');}@opello:ECMAScript规范说,使用对象文本形式将“创建一个新对象,就像通过表达式new Object()”,如果替换了脚本可见的常规对象构造函数,那么应该使用什么对象构造函数,这在某种程度上是可以理解的。ECMAScript 5规范更为明确:“返回一个新对象,该对象由表达式new object()创建,其中object是具有该名称的标准内置构造函数。”
var obj = new Object();
obj["X"] = 10;
obj["Y"] = 20;