构造函数继承

构造函数继承

function A() {
	//实例
	this.a = 'a'
	this.b = 'b'	
}
//原型
A.prototype.add = function() {
	return 'add';
};

function B() {

}

//B extends A
//原型式继承 能继承原型上对象成员
B.prototype = A.prototype;

var b = new B();
console.log(b.a);// undefined
console.log(b.add()); //add


console.log('-----------------line------------------')
function C() {

}

//原型链继承,子构造函数继承父构造函数的实例
C.prototype = new A();//new的作用将c的原型赋值给A的上下文

var c = new C()
console.log(c.a);// a
console.log(c.add());//add


console.log('-----------------line------------------')
//使用call或者apply函数继承
function D() {
	//把D的作用域赋值给A的上下文
	A.call(this);
}
var d = new D();
console.log(d.a);// a
console.log(c.add());//add
posted @ 2020-03-27 21:07  zgddan  阅读(204)  评论(0)    收藏  举报