« helen | 首页 | 泥鳅 »

dada

个人主页: http://www.blogcn.com/user60/dadaliu/index.html

留言(4 条)

Javascript 面向对象编程(一):封装 留言:

我昨天的留言,感觉太草率了,今天又读了一些,发现博主说的还是比较准确的,虽然给我造成了一定的误解,不过博主说还是对的,我上面说的那个根本不正确。。。。

Javascript 面向对象编程(一):封装 留言:


引用Dada的发言:


function Cat(name,color){
    this.name = name;
    this.color = color;
  }
  Cat.prototype.type = "猫科动物";
  Cat.prototype.eat = function(){alert("吃老鼠")};

var cat1 = new Cat("大毛","黄色");
  var cat2 = new Cat ("二毛","黑色");
  alert(cat1.type); // 猫科动物

这里两个对象的type显然不是一个内存地址,可以写一个代码跑一下啊,我试了,不再同一内存地址,如果在同一内存地址不就成了静态变量。



刚才我说的也不准确,下面是摘自一个博客,我感觉挺准确的,你文章里写的有点歧义,容易让人以为prototype中所定的属性是静态方法。

话说每一个方法对象被创建时,都会自动的拥有一个叫 prototype 的属性。这个属性并无什么特别之处,它和其他的属性一样可以访问,可以赋值。不过当我们用 new 关键字来创建一个对象的时候,prototype 就起作用了:它的值(也是一个对象)所包含的所有属性,都会被复制到新创建的那个对象上去。

Javascript 面向对象编程(一):封装 留言:

function Cat(name,color){
    this.name = name;
    this.color = color;
  }
  Cat.prototype.type = "猫科动物";
  Cat.prototype.eat = function(){alert("吃老鼠")};

var cat1 = new Cat("大毛","黄色");
  var cat2 = new Cat ("二毛","黑色");
  alert(cat1.type); // 猫科动物

这里两个对象的type显然不是一个内存地址,可以写一个代码跑一下啊,我试了,不再同一内存地址,如果在同一内存地址不就成了静态变量。

青藏铁路 留言:

看来第一趟火车的火车票得比春运厉害:)
但是风景一定更厉害