ES5类式继承

本文深入探讨了JavaScript中的三种继承方式:默认原型继承、借用构造函数和借用与原型结合。通过实例展示了如何创建对象、属性继承以及修改属性的影响。在默认模式下,子对象从父对象原型继承属性;借用构造函数时,子对象拥有独立的属性但无法继承原型方法;而借用与原型结合则兼顾属性独立与原型继承。
摘要由CSDN通过智能技术生成

1. 默认模式

function Parent () {
	this.name = 'p';
}
Parent.prototype.say = function () {
	console.log('hello');
}
function Child () {}
Chid.prototype = new Parent();

var p = new Parent();
var c = new Child();

p.hasOwnProperty('name');//true
c.hasOwnProperty('name');//false,子构造函数没有自己的name属性,是从Parent中继承而来

c.name = 'c';
console.log(p.name);//'c',修改子对象属性父对象属性也会一起改变

2.借用构造函数

function Parent () {
	this.name = 'p';
}
Parent.prototype.say = function () {
	console.log('hello');
}
function Child () {
	Parent.call(this);
}
var p = new Parent();
var c = new Child();

p.hasOwnProperty('name');//true
c.hasOwnProperty('name');//true,子构造函数有自己的name属性,不能继承父构造函数原型上的方法和属性

c.name = 'c';
console.log(p.name);//'p',修改子对象属性父对象属性不会一起改变

3. 借用和原型

function Parent () {
	this.name = 'p';
}
Parent.prototype.say = function () {
	console.log('hello');
}
function Child () {
	Parent.call(this);
}
Child.prototype = new Parent();

var p = new Parent();
var c = new Child();

p.hasOwnProperty('name');//true
c.hasOwnProperty('name');//true,子构造函数有自己的name属性,也能继承父构造函数原型上的方法和属性

c.name = 'c';
console.log(p.name);//'p',修改子对象属性父对象属性不会一起改变
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值