一、伪类
this.prototype = { constructor: this};
Function.method('new',function(){ //创建一个新对象,它继承自构造函数的原型对象 var that = Object.create(this.prototype); // 调用构造函数,绑定-this-到新对象上 var other = this.apply(that,arguments); //如果返回值不是一个对象,就返回该新对象 return (typeof other ==='object'&&other)||that; })
我们定义一个构造器来扩充它的原型
var Mammal = function(name){ this.name=name; }; Mammal.prototype.get_name = function(){ return this.name; }; Mammal.prototype.says = function(){ return this.saying || ''; }
现在我们构造一个实例
var myMammal = new Mammal('Hello World!'); var name = myMammal.get_name();
我们构造一个伪类来继承Mammal,通过定义它的constructor函数并替换他的prototype为一个Mamma
var Cat = function(name){ this.name =name; this.saying= 'meow'; }
替换Cat.prototype为一个新的Mammal实例
Cat.prototype =new Mammal();
Cat.prototype.get_name = function(){ return this.says()+''+this.name+''+this.says(); }; var myCat =new Cat('wsm'); var says = myCat.says(); var name= myCat.get_name();
二、原型
- 构造一个有用的对象开始,接着可以构造更多和那个对象类似的对象。
Object.create方法构造更多的实例
三、函数化
运用模块模式的继承模式去保护隐私。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。