本文共 2022 字,大约阅读时间需要 6 分钟。
继承是类与类之间的关系,其作用是使得子类具有父类别的各种属性和方法。
想要继承,就必须要提供个父类(继承谁,提供继承的属性)
// 创建一个人类,并且人类带有名字 吃饭和能跑的属性function Human(name) { this.name = name this.eat = function () { console.log('吃饭') } } Human.prototype.run = function () { console.log('我很能跑') }
// 创建一个男人类,并且让男人类 继承 人类有名字 吃饭和能跑的属性function Man(age) { this.age = age } Man.prototype = new Human("小王") // 重点 let man = new Man('11') console.log(man.age) // 11 console.log(man.name) // '小王' man.run() // '我很能跑' let man2 = new Man('33') console.log(man2.age) // 33 console.log(man2.name) // '小王' man2.run() // '我很能跑'
缺点:
function Man(name, age) { Human.call(this, name) // 重点 this.age = age } let man1 = new Man('小王', 12) console.log(man1.name) // 小王 console.log(man1.age) // 12 man1.eat() // 吃饭 man1.run() // Uncaught TypeError: man1.run is not a function let man2 = new Man('大王', 21) console.log(man2.name) // 大王 console.log(man2.age) // 21
缺点:
function Man(age, name) { Human.call(this, name) // 重点 this.age = age } Man.prototype = new Human() // 重点 let man1 = new Man('小王', 12) console.log(man1.name) // 小王 console.log(man1.age) // 12 man1.eat() // 吃饭 man1.run() // 我很能跑 let man2 = new Man('大王', 21) console.log(man2.name) // 大王 console.log(man2.age) // 21
优点:
缺点:
function Man(obj) { function F() { } F.prototype = obj return new F() } let man = new Human('小') let man1 = Man(man) console.log(man1.name) // 小
缺点:
转载地址:http://ktri.baihongyu.com/