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

解决方案 »

  1.   

    这两个效果是一样的。

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

  2.   

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

  3.   

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

  4.   

    搞清楚了!谢谢rob123与hbhbhbhbhb1021提醒是重定义Object的问题,例子如下
    Object = "aa";
    var a = new Object(); //出错
    var a = {};           //不出错
    -------------------------------唉,出现上面的错误因为是在改别人代码,我今天把它们全部拿出来一行一行的删来调试,最后发现原来写这代码的人居然在一处地方用了Object做变量,才导致了这种情况........................郁闷死我了!@$$%@#$!@#!@#!不过从中也发现,其实var o ={}的写法比var o = new Object();的写法好!因为不怕Object不小心被重定义了.
    因为 var {} = "a"; 的写法是不行的,呵呵
    所以建议大家都用var o ={}定义对象,免得被折腾....^_^
      

  5.   

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

  6.   

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

  7.   

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