javascript”面向对象编程” – 4 function也是”类”
2009-09-19 00:00:00 来源:WEB开发网普通公共成员的创建,不在类的里面来编码,而是通过类的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中的面向对象编程实例
Tags:javascript 面向 对象
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接