WEB开发网
开发学院网页设计JavaScript javascript”面向对象编程” – 4 function也是”... 阅读

javascript”面向对象编程” – 4 function也是”类”

 2009-09-19 00:00:00 来源:WEB开发网   
核心提示: 普通公共成员的创建,不在类的里面来编码,javascript”面向对象编程” – 4 function也是”类”(3),而是通过类的prototype来创建,添加普通公共成员都直接添加到类的prototype中,这些成员也可以和类中原先具有的公共成员进行访问,younglady.SetName=

javascript”面向对象编程” – 4 function也是”类”

普通公共成员的创建,不在类的里面来编码,而是通过类的prototype来创建。添加普通公共成员都直接添加到类的prototype中,而 prototype就是一个像JSON对象一样的成员集对象。当我们进行对象创建时,可以认为会将类prototype中的成员整体copy入新的 Object对象中。

    var younglady = new Lady();
    younglady.Introduce(); //Introduce
 
    Lady.prototype.Hobby = "上网";
    Lady.prototype.GetName = function() {
      return this.Name;
    };

    var lady2 = new Lady();
    alert(lady2.GetName());
    alert(lady2.Hobby);

上面代码通过prototype为Lady类添加了普通公共成员GetName方法和Hobby属性,因为是公共成员,所以它们可以和原先定意在类中的特权成员进行互相访问。因为公共成员可以互相访问。对上述代码做些修改。如下。

    var younglady = new Lady();
 
    Lady.prototype.Hobby = "上网";
    Lady.prototype.GetName = function() {
      return this.Name;
    };
 
    alert(younglady.GetName());
    alert(younglady.Hobby);

先创建出Lady对象,再修改类成员,先前创建好的对象也具有了新的成员。这就是prototype做为类原型所带来的好处,这里简单理解,可以认为prototype是类对象的模版,模版的修改会影响到所有该类对象。

在添加普通成员的时候也可以来个批量的添加,直接用一个新的JSON对象来赋给prototype就可以了。但是要注意,现在是将原先的 prototype进行了替换,在替换之前创建的对象引用的是旧的prototype对象,所以对prototype替换之前创建的对象不会有Hobby 和GetName成员。

    Lady.prototype = {
      Hobby: "上网",
      GetName: function() {
        return this.Name;
      }
    };
    var younglady = new Lady();
    alert(younglady.GetName());
    alert(younglady.Hobby);

除了在构建类时可以添加公共成员,还可以对对象直接进行成员操作。这在本小系列第二篇文章里有描述。这里做一下补充,对对象直接添加的成员,也是一种公共成员,这些成员也可以和类中原先具有的公共成员进行访问。

    younglady.SetName = function(name) {
      this.Name = name;
    };
    younglady.SetName("菜明");
    alert(younglady.GetName());

以上说了一下类成员的东西,下次再说说类继承相关的东西。(如有不当说法请指正)

编缉推荐阅读以下文章

  • javascript”面向对象编程”- 3 function是方法(函数)
  • javascript”面向对象编程”- 2聊聊对象的事
  • javascript”面向对象编程”- 1万物皆对象
  • Javascript中的面向对象编程实例

上一页  1 2 3 

Tags:javascript 面向 对象

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接