首页 > Web开发 > 详细

JS继承

时间:2019-10-23 19:28:43      阅读:95      评论:0      收藏:0      [点我收藏+]

什么是继承

  • 现实生活中的继承

  • 程序中的继承

构造函数的属性继承:借用构造函数

 function Person (name, age) {
   this.type = ‘human‘
   this.name = name
   this.age = age
 }
 ?
 function Student (name, age) {
   // 借用构造函数继承属性成员 
   Person.call(this, name, age)
 }
 ?
 var s1 = Student(‘张三‘, 18)
 console.log(s1.type, s1.name, s1.age) // => human 张三 18

构造函数的原型方法继承:拷贝继承(for-in)

 function Person (name, age) {
   this.type = ‘human‘
   this.name = name
   this.age = age
 }
 ?
 Person.prototype.sayName = function () {
   console.log(‘hello ‘ + this.name)
 }
 ?
 function Student (name, age) {
   Person.call(this, name, age)
 }
 ?
 // 原型对象拷贝继承原型对象成员
 for(var key in Person.prototype) {
   Student.prototype[key] = Person.prototype[key]
 }
 ?
 var s1 = Student(‘张三‘, 18)
 ?
 s1.sayName() // => hello 张三

另一种继承方式:原型继承

 function Person (name, age) {
   this.type = ‘human‘
   this.name = name
   this.age = age
 }
 ?
 Person.prototype.sayName = function () {
   console.log(‘hello ‘ + this.name)
 }
 ?
 function Student (name, age) {
   Person.call(this, name, age)
 }
 ?
 // 利用原型的特性实现继承
 Student.prototype = new Person()
 ?
 var s1 = Student(‘张三‘, 18)
 ?
 console.log(s1.type) // => human
 ?
 s1.sayName() // => hello 张三

 

JS继承

原文:https://www.cnblogs.com/superjishere/p/11727808.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!