JavaScript的原型链

JavaScript的原型链

原型链

原型链是JavaScript中实现继承的主要方法。
简单来说就是,有两个构造函数记为SuperType()和SubType(),让SubType的原型对象等于SuperType的实例,此时原型对象将含有指向另一个原型的指针,那么这个原型对象也将包含另一个构造函数的指针,就实现了继承。

		function superType() {
            this.property = true;
        }// 定义superType引用类型
        superType.prototype.getSuperValue = function () {
            return this.property;
        }// superType的方法
        function subType() {
            this.subpropertype = false;
        }
        subType.prototype = new superType();// 用上述原型链模式实现继承
        subType.prototype.getSubValue = function () {
            return this.subpropertype;
        }// 定义subType的自己的方法
        var test = new subType();
        alert(test.getSubValue());// false
        alert(test.getSuperValue());// true
        /*通过subType的实例能够调用superType定义的方法,继承成功*/

该继承中,原型链的梳理

JavaScript的原型搜索机制,当读取某一个实例属性时,会在实例中搜索该属性。如果没有找到该属性,则会继续搜索实例的原型。当搜素实例的原型时会沿着原型链继续向上搜索。

即 实例–>subType.prototype–>superType.prototype

回想之前学过的toString(); valueOf();等方法,都是继承而来的,所有引用类型都默认继承了object,这个继承就是通过原型链实现的。

如何确定实例和原型的关系

有两种方式能够判断一个实例是不是某一个原型链中的实例
instanceof操作符和isPrototypeOf();方法

/*instanceof操作符*/
alert(test instanceof Object);// true
alert(test instanceof superType);// true
alert(test instanceof subType);// true
/*isPrototypeOf()方法*/
alert(Object.prototype.isPrototypeOf(test));// true
alert(subType.prototype.isPrototypeOf(test));// true
alert(superType.prototype.isPrototypeOf(test));// true
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值