javascript高级程序设计之---继承

本文探讨JavaScript中的继承思想,包括将一个构造函数的原型指向另一个构造函数的实例以实现继承,以及介绍常见的继承实现方法:组合继承、原型式继承、寄生式继承和寄生组合式继承。
摘要由CSDN通过智能技术生成
对象的继承

 1.继承的思想:关键是将一个构造函数A的原型指向给另一个构造函数B的实例本身,那么A实例将拥有(继承)B实例的所有的属性和方法(继承在原型)

  2.原理:将一个构造函数A的原型指向给另一个构造函数B的实例本身,也就意味着A原型将继承B实例本身拥有的所有的属性和方法;而对于A实例而言,A原型对象中的所有的属性和方法是A实例所共享的,也就是说A实例所共享的实例和方法就是B实例本身所拥有的一切属性和方法,这就好像A实例继承了B实例的属性和方法一样。

3.继承的一些常用的实现方法:

3.1.组合继承(最常用的继承方法)

  这里所谓的”组合“就是原型链和构造函数的技术整合到一起,分别发挥各自的优势:具体思想是:通过原型链继承原型上的属性和方法,通过借用构造函数实现对实例属性的继承。(想方设法将被继承者的实例属性”写“到继承者的实例属性值中去,这就用到了call(apply))

function SuperType(name) {
            this.name = name;
            this.colors = ["red", "blue", "green"];
        }
        SuperType.prototype.sayName = function () {
            console.log(this.name);
        }
        function SubType(name, age) {
            //继承属性(实例属性)
            // 在当前环境中执行了函数SuperType(name),
            //相当于再这里写了一下代码:this.name = name;this.colors = ["red","blue","green"];
            SuperType.call(this, name);
            
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值