javascript中类的定义和继承方法不一,下面介绍常用方法:
一.类的定义: 1.混合的构造函数/原型: 程序代码 function Parent(name) { //实例属性 this.name = name; } //实例方法 Parent.prototype.hello = function () { alert("parent!"); } //类属性 Parent.PI = 3.14159; //类方法 Parent.say = function () { alert("say"); } 2.动态原型: 程序代码 function Parent(name) { //实例属性 this.name = name; if (typeof Parent._initialized == "undefined") { //实例方法 Parent.prototype.hello = function () { alert("parent!"); }; //类属性http://qqface./ Parent.PI = 3.14159; //类方法 Parent.say = function () { alert("say"); } Parent._initialized = true; } } 其中方法1更常用。 2.类的继承: 程序代码 function Child(name, age) { Parent.call(this, name); this.age = age; } Child.prototype = new Parent(); //Child.prototype = Parent.prototype; Child.prototype.hello = function () { alert("child!"); } for (var classMember in Parent) { Child[classMember] = Parent[classMember]; } 注意: 1.不能用Child.prototype = Parent.prototype,否则会导致:修改Child的方法同时也修改Parent的方法。 2.使用Child.prototype = Parent.prototype也可以使Child的实例child instanceof Parent为true。 3.其中类方法、类属性的继承实现的比较牵强,期待更好的方法。 |
|