1、inheritprototype.js
;(function(){
var s = { inheritObject:function(o){//对象继承封装 var F = function(){}; F.prototype = o; return new F(); }, inheritPrototype:function(subclass,supperclass){//原型继承封装 var obj = this.inheritObject(supperclass.prototype); obj.constructor = subclass; subclass.prototype = obj; } }; window.$ = window.s = s;//起别名并把闭包内的命名空间对象s暴露出去})(window);2、inheritprototype.html
<!DOCTYPE html>
<html><head lang="en"> <meta charset="UTF-8"> <title></title> <script type="text/javascript" src="js/inheritprototype.js"></script></head><body></body><script type="text/javascript">;(function(){ function Shape(){//超类 this.name = 'Lucy'; this.type = '超体者' } Shape.prototype = { init:function(){ var name = this.getname(); var type = this.gettype(); console.log(name); console.log(type); }, getname:function(){ return this.name; }, gettype:function(){ return this.type; } } function Triangle(){//子类 Shape.apply(this);//this继承构造体 this.sex = '女'; } $.inheritPrototype(Triangle,Shape);//这里一定要注意,是先继承再拓展自己的原型方法,否则报错 Triangle.prototype.getsex = function(){ console.log(this.sex); } var o = new Triangle(); o.init();//继承父元素的init()并执行 o.getsex();//执行Triangle构造函数的方法})();</script></html>