定义一个对象时:var O=new Object() 与 var O={}两种定义在哪里不一样

时间:2022-01-30 19:37:09
如题

我可以肯定它们是不一样的了,因为我今天在一个操作里用var O=new Object()的时候出错了,后来换成了var O={}就好了

搞不懂为什么

12 个解决方案

#1


应该有地方重定义Object了

#2


高深知识`````呵呵

#3


重定义Object?
是什么情况呢?怎么样才能出现重定义的情况?

#4


up

#5


把相关的代码贴出来,只这样讲没什么意义!

#6


这两个效果是一样的。

var arrayA=new Array();
var arrayB=[];
一样

#7


重定义:
function Object(){
this.message = "test";
}
Object.prototype.alert = function(){
alert(this.message);
}
var _obj = new Object();
_obj.alert();

#8


var o ={} === var o = new Object();
var a =[] === var a = new Array();

over!

#9


搞清楚了!谢谢rob123与hbhbhbhbhb1021提醒

是重定义Object的问题,例子如下
Object = "aa";
var a = new Object(); //出错
var a = {};           //不出错
-------------------------------

唉,出现上面的错误因为是在改别人代码,我今天把它们全部拿出来一行一行的删来调试,最后发现原来写这代码的人居然在一处地方用了Object做变量,才导致了这种情况........................

郁闷死我了!@$$%@#$!@#!@#!

不过从中也发现,其实var o ={}的写法比var o = new Object();的写法好!因为不怕Object不小心被重定义了.
因为 var {} = "a"; 的写法是不行的,呵呵
所以建议大家都用var o ={}定义对象,免得被折腾....^_^

#10


两者没有区别,除非Object被改写了。

至于说那种方式好,要看你的用途。例如在一些侵入式的js框架中,写成new Object()是为了获得一些额外方法,但在创建对象用作map的时候,则用{},这样for in的时候不会枚举到那些额外的property。

#11


var O=new Object() ; //新创建一个对象
var O={} ;//赋值语句 初始化一个空对象
两者之间没有本质的区别的;
也就等价于new Array()和【】

#12


to hax(海曦)
你这样说的应该是最准确的了
我的经验还不够丰富,学习!
姜还是老的辣啊^_^

#1


应该有地方重定义Object了

#2


高深知识`````呵呵

#3


重定义Object?
是什么情况呢?怎么样才能出现重定义的情况?

#4


up

#5


把相关的代码贴出来,只这样讲没什么意义!

#6


这两个效果是一样的。

var arrayA=new Array();
var arrayB=[];
一样

#7


重定义:
function Object(){
this.message = "test";
}
Object.prototype.alert = function(){
alert(this.message);
}
var _obj = new Object();
_obj.alert();

#8


var o ={} === var o = new Object();
var a =[] === var a = new Array();

over!

#9


搞清楚了!谢谢rob123与hbhbhbhbhb1021提醒

是重定义Object的问题,例子如下
Object = "aa";
var a = new Object(); //出错
var a = {};           //不出错
-------------------------------

唉,出现上面的错误因为是在改别人代码,我今天把它们全部拿出来一行一行的删来调试,最后发现原来写这代码的人居然在一处地方用了Object做变量,才导致了这种情况........................

郁闷死我了!@$$%@#$!@#!@#!

不过从中也发现,其实var o ={}的写法比var o = new Object();的写法好!因为不怕Object不小心被重定义了.
因为 var {} = "a"; 的写法是不行的,呵呵
所以建议大家都用var o ={}定义对象,免得被折腾....^_^

#10


两者没有区别,除非Object被改写了。

至于说那种方式好,要看你的用途。例如在一些侵入式的js框架中,写成new Object()是为了获得一些额外方法,但在创建对象用作map的时候,则用{},这样for in的时候不会枚举到那些额外的property。

#11


var O=new Object() ; //新创建一个对象
var O={} ;//赋值语句 初始化一个空对象
两者之间没有本质的区别的;
也就等价于new Array()和【】

#12


to hax(海曦)
你这样说的应该是最准确的了
我的经验还不够丰富,学习!
姜还是老的辣啊^_^