有区别,方法1的定义是给Object对象增加了一个属性color,后面的所有用Object建立的对象都会继承这个属性,如:
aa=new Object();
Object.prototype.color="blue";
bb=new Object();
alert(bb.color);方法2只定义了aa对象的一个属性color,其他用Object实例化的对象不具有这样的属性

解决方案 »

  1.   

    更正为:
    有区别,方法1的定义是给Object对象的应用增加了一个属性color,所有用Object建立的对象都会继承这个属性,如:
    aa=new Object();
    Object.prototype.color="blue";
    bb=new Object();
    alert(bb.color);
    alert(aa.color);方法2只定义了aa对象的一个属性color,其他用Object实例化的对象不具有这样的属性
      

  2.   

    谢谢 sunmingdong() 
         请问“Object对象的应用”和“Object对象”这两者有什么区别啊?
         还有我用 var mynew = new Object()
             和用 function myobject()
                   {
                    this.color="blue"
                    }
                  var mynew= new myobject()
    有什么区别啊?谢谢!!!
      

  3.   

    美洲豹好久不见啦!ATCG:内部实现上不同,一般使用的时候区别不大。不过当你定义复杂对象的时候用function比较合适。试想:
    function myobject(){
    this.color="blue";
    this.width="100px";
    this.height="20px";
    this.top="0px";
    this.left="0px";
    }
    var a=new myobject();
    var b=new myobject();
    var c=new myobject();
    var d=new myobject();用Object怎么写?
      

  4.   

    我又写错了,object.prototype是object对象的引用(不是应用);
    object对象就是js内置对象之一,我们只能增加其原型引用的方法和属性,而不能改变其对象本身
      

  5.   

    我这样写,行吗?
    Object.prototype.color="blue";
    Object.prototype.width="100px";
    Object.prototype.height="20px";
    Object.prototype.top="0px";
    Object.prototype.left="0px";
    var a=new Object();
    var b=new Object();
    var c=new Object();
    var d=new Object();
      

  6.   

    sunmingdong() 你好!
       什么叫“不能改变其对象本身”呢?Object()对象除了prototype属性外,
    还有其它什么属性和方法吗?对象是由属性和方法组成的啊。
      

  7.   

    Object对象:
     属性:constructor,prototype;
     方法:toString,valueOf,toLocaleString;
    其他的属性和方法没有什么实际意义。emu(ston) 和你写的代码虽然能实现同样的功能,但意义却不一样,
    emu的是建立的一个自己的对象,而你的是改变了object对象的引用,a、b、c、d是对object对象的实例
      

  8.   

    呵呵,你改了prototype,那以后要不定义不是这个样子的Object的时候怎么办呢?看看下面的情形:function myobject(){
    this.color="blue";
    this.width="100px";
    this.height="20px";
    this.top="0px";
    this.left="0px";
    }
    function myobject2(){
    this.color="red";
    this.width="20px";
    this.height="100px";
    this.bototm="0px";
    this.right="0px";
    }
    var a=new myobject();
    var b=new myobject2();
    var c=new myobject();
    var d=new myobject2();
      

  9.   

    建立对象,我不习惯用object,用
    function myobject(x,y,z){
       this.x=x;
       this.y=y;
       this.z=z;
       this.add=function(){
          return x+y+z;
       }
    }
    这样作,好处更多,
    1、概念清楚;
    2、构造函数已经有了
       var a=new myobject(12,23,1);
       等价于 
       var a=new myobject();
       a.x=12;
       a.y=23;
       a.z=1;
      

  10.   

    两位的意思是说尽量不要去改变 Object() 的 prototype
    sunmingdong() ,你好!你说的
    “Object对象:
      属性:constructor,prototype;
      方法:toString,valueOf,toLocaleString;”
    我又有些不明白了,我现在的理解是构造函数是整个function 或 Object()
    如:function myclass()
         {
          this.color="red"      
         }
    你说Object()对象有一个属性是construtor,难道我可以写: Object.constructor吗?
      

  11.   

    sunmingdong() 你好!
    “我不习惯用object”我觉得应该是 Object吧,JavaScript的内置对象
    都是以 大写字母开头的吧?
      

  12.   

    Object确实有这样的constructor属性,你的写法没错
      

  13.   

    constructor 属性
    请参阅
    prototype 属性应用于:Array Object | Boolean 对象 | Date 对象 | Function 对象 | Math 对象 | Number 对象 | Object 对象 | String 对象
    要求
    版本2
    表示创建对象的函数。object.constructor
    必需的 object是对象或函数的名称。说明
    constructor 属性是所有具有 prototype 的对象的成员。它们包括除 Global 和 Math 对象以外的所有 JScript 内部对象。constructor 属性保存了对构造特定对象实例的函数的引用。例如: x = new String("Hi");
    if (x.constructor == String)
       // 进行处理(条件为真)。
    或 function MyFunc {
       // 函数体。
    }y = new MyFunc;
    if (y.constructor == MyFunc)
       // 进行处理(条件为真)。
    要求
    版本2请参阅
    prototype 属性应用于:Array Object | Boolean 对象 | Date 对象 | Function 对象 | Math 对象 | Number 对象 | Object 对象 | String 对象
      

  14.   

    建议你到csdn的文档中心发布一些文章(应用技巧和心得什么的),你的可用分就会源源不断了,我现在的可用分7K了,平时也不怎么用,受过几次打击(发上的帖子没人回答),简单的帖子没有发的必要(查旧的或看看书就搞的定)
      

  15.   

    对于prototype:
    原理是这个:<script>var a=new Object();
    var b=new Object();
    b.ppt="b";
    Object.prototype.ppt="ppt";
    var c=new Object();
    c.ppt2="c_ppt2";
    alert([a.ppt,b.ppt,c.ppt]);
    alert([a.ppt2,b.ppt2,c.ppt2]);alert([GetProperty(a,"ppt"),GetProperty(b,"ppt"),GetProperty(c,"ppt")]);
    alert([GetProperty(a,"ppt2"),GetProperty(b,"ppt2"),GetProperty(c,"ppt2")]);
    //prototype的默认访问形式如下:
    //JScript5.5
    function GetProperty(obj,name)
    {
    //例子,不对参数进行检查了。
    if(obj.hasOwnProperty(name))
    return obj[name];
    if(obj.constructor.prototype.hasOwnProperty(name))
    return obj.constructor.prototype[name];
    return undefined;
    }</script>
      

  16.   

    不要用C++中的面向对象的概念去套用js中,它们之间还是有区别的,象这个constuctor属性(应该不是构造器吧),我就没搞清,在什么情况下能用的上