首页 > 代码库 > JS 类继承 原型继承
JS 类继承 原型继承
参考文档:JS原型继承和类继承
<script src="http://www.mamicode.com/jquery-2.0.3.js"> </script> <script> /*//类继承 var father=function(){ this.age=53; this.say=function(){ console.log("name:"+this.name+",age:"+this.age); } }; var child=function(){ this.name="child"; father.call(this); } var man=new child(); man.say();
console.log(man); */ //原型继承 var father=function(){} father.prototype.a=function(){console.log(11)}; var child=function(){}; child.prototype=new father(); var man=new child(); man.a(); console.log(man); </script>
类继承时打印man:
原型继承时打印man:
看似,原型继承时,对象可以调用原型上的方法
类继承的方法,每一次都会存到内存中,损耗性能,并且不容易扩展
原型继承:很灵活,改变原型链即可,写好extend就可以
通常继承会汇聚两种方式的优点,组合模式就是这样做:用类继承去继承属性(每个实例的属性应该是私有的,不应该是共有的),用原型继承去继承方法
例如
var father=function(){ this.age=53; }; father.prototype.b=new function(){ console.log(this.age); } var child=function(){ father.call(this); } child.prototype=new father(); var man=new child(); console.log(man);
**使用 Object.create()
var father ={ a:‘father‘, b:function(){ console.log(this.a); } } var obj=Object.create(father); console.dir(obj);
JS 类继承 原型继承
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。