继承与原型链

JavaScript通过prototype继承属性与方法,一个原型对象也有原型这样就构成了原型链。

函数、原型、实例之间的关系大概是这样的:通过构造函数可以生成实例,实例和构造函数的prototype都指向原型

原型链:func-->Function.prototype-->Object.prototype-->null

let func = function() {
    this.a = 1;
    this.b = 2;
};
// 将this指向o
let o = new func();

func.prototype.constructor == func
o.prototype = func.prototype

func.prototype.b = 3;
func.prototype.c = function() {
    return this.a;
};
console.log(o.a); // 自身属性a: 1
console.log(o.b); // 自身属性b: 2
delete o.b;       // 删除自身属性b
console.log(o.b); // 继承属性b: 3
console.log(o.c());// 继承的方法返回1

这里o的原型和func的原型都指向func.prototype

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值