javascript原型,继承
Posted carry-carry
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript原型,继承相关的知识,希望对你有一定的参考价值。
//普通对象 //函数对象(有原型 prototy 的属性) //原型的应用 继承 function Amial(){ this.type = ‘小于‘ } function cat(name){ this.name = name } cat.prototype = new Amial() var cat1 = new cat(‘小张‘) console.log(cat1.name,cat1.type) //构造器 继承 缺点:把父元素的属性都复制了 function Amial(){ this.type = ‘动物‘ } function amm(name){ Amial.apply(this) //调用Amial构造器 Amial == amm //Amial.call(this,x,y,z) Amial.apply(this,[x,y,z]) this.name = name } var a = new amm(‘张三‘) console.log(a.type) //组合继承(原型+构造器) 缺点:调用两次父类构造器 function Preson(name){ this.arr = [‘js‘,‘php‘] this.name = name } Preson.prototype.showname = function(){ console.log(this.name) } function teacher(name,gread){ Preson.call(this,name) this.gread = gread } teacher.prototype = new Preson() // 最关键的一句 var a = new teacher(‘xiaoming‘, 23) console.log(a.arr,a.name,a.gread) a.showname() //原型+构造+寄生 function father(name){ this.arr = [‘aa‘,‘bb‘] this.name = name } father.prototype.showname = function(){ console.log(this.name) } function son(name,course){ father.call(this,name) this.course = course } function extend(subobj,superobj){ var proobj = Object.create(superobj.prototype) subobj.prototype = proobj } extend(son, father) var a = new son(‘xiaoming‘, 23) console.log(a.arr,a.name,a.course) a.showname()
以上是关于javascript原型,继承的主要内容,如果未能解决你的问题,请参考以下文章