我可以肯定它们是不一样的了,因为我今天在一个 *** 作里用var O=new Object()的时候出错了,后来换成了var O={}就好了
搞不懂为什么
应该有地方重定义Object了
高深知识`````呵呵
重定义Object?
是什么情况呢?怎么样才能出现重定义的情况?
up
把相关的代 *** 贴出来,只这样讲没什么意义!
这两个效果是一样的。
跟
var arrayA=new Array();
var arrayB=[];
一样
重定义:
function Object(){
this.message = "test";
}
Object.prototype.alert = function(){
alert(this.message);
}
var _obj = new Object();
_obj.alert();
var o ={} === var o = new Object();
var a =[] === var a = new Array();
over!
搞清楚了!谢谢rob123与hbhbhbhbhb1021提醒
是重定义Object的问题,例子如下
Object = "aa";
var a = new Object(); //出错
var a = {}; //不出错
-------------------------------
唉,出现上面的错误因为是在改别人代 *** ,我今天把它们全部拿出来一行一行的删来调试,最后发现原来写这代 *** 的人居然在一处地方用了Object做变量,才导致了这种情况........................
郁闷死我了!@$$%@#$!@#!@#!
不过从中也发现,其实var o ={}的写法比var o = new Object();的写法好!因为不怕Object不小心被重定义了.
因为 var {} = "a"; 的写法是不行的,呵呵
所以建议大家都用var o ={}定义对象,免得被折腾....^_^
两者没有区别,除非Object被改写了。
至于说那种方式好,要看你的用途。例如在一些侵入式的js框架中,写成new Object()是为了获得一些额外方法,但在创建对象用作map的时候,则用{},这样for in的时候不会枚举到那些额外的property。
var O=new Object() ; //新创建一个对象
var O={} ;//赋值语句 初始化一个空对象
两者之间没有本质的区别的;
也就等价于new Array()和【】
to hax(海曦)
你这样说的应该是最准确的了
我的经验还不够丰富,学习!
姜还是老的辣啊^_^
| 论坛热门帖子: | [lch203] 写得蛮好的linux学习笔记(10-21) [黑马制造] 学习java的30个目标(10-19) [笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19) [udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18) [沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18) |
| TAG标签: | 定义 哪里 一样 一个 对象 var Object new // 因为 这样 |
注册
个人空间
