传递参数
借助构造函数还有一个优势就是可以传递参数
- var person = {
- name: 'Jiang',
- friends: ['Shelby', 'Court']
- }
- var anotherPerson = Object.create(person)
- console.log(anotherPerson.friends) // ['Shelby', 'Court']
- function SuperType(name) {
- this.name = name
- }
- function SubType() {
- // 持续SuperType
- SuperType.call(this, 'Jiang')
- this.job = 'student'
- }
- var instance = new SubType()
- console.log(instance.name) // Jiang
- console.log(instance.job) // student
问题
如不雅仅仅借助构造函数,办法都在构造函数中定义,是以函数无法达到复竽暌姑
组合持续(原型链+构造函数)
组合持续是将原型链持续和构造函数结合起来,大年夜而发挥二者之长的一种模式。
思路就是应用原型链实现对原型属性和办法的持续,而经由过程借用构造函数来实现对实例属性的持续。
如许,既经由过程在原型上定义办法实现了函数复竽暌姑,又可以或许包管每个实例都有它本身的属性。
- function SuperType(name) {
- this.name = name
- this.colors = ['red', 'blue', 'green']
- }
- SuperType.prototype.sayName = function () {
- console.log(this.name)
- }
- function SubType(name, job) {
- // 持续属性
- SuperType.call(this, name)
- this.job = job
- }
推荐阅读
在本文中,我们将解释 Linux 体系中最关键的治理义务之一——关于体系 / CPU 的负载(load)和平均负载(Load average)的机能监控。起首来看所有的类 UNIX 体系中两个重要的表述:>>>详细阅读
本文标题:JavaScript六种继承方式
地址:http://www.17bianji.com/lsqh/35904.html
1/2 1