JS-继承

继承 
    1.原型链继承
    2.借用构造函数继承 经典继承
    3.组合继承 1+2 
实例去访问一个方法或者属性 
    1.先去自身查找有没有这个属性
    2.再去原型对象中去查找这个方法或者这个属性
    3.就去父构造函数原型对象中去访问属性和方法 
function Person(){}
var p1 = new Person();
Person.prototype ;//{}
p1.say();
//原型链继承 子构造函数的原型对象指向父构造函数的实例
Person.prototype = new Object();

例:

/**
 * 继承 
 * 1.借用构造函数继承 经典继承 
 * 2.原型链继承 
 * 3.组合继承
 */

/**
 * 创建构造函数  声明父构造函数
 */
function Animal(type,age,weight,length){
	this.type = type;
	this.age = age;
	this.weight = weight;
	this.length = length;
}
/**
 * 将公共方法写在原型对象
 */
Animal.prototype = {
	constructor:Animal,
	sayType:function(){
		console.log(this.type)
	}
};
/**
 * 声明子构造函数
 */
function Dog(type,age,weight,length,name,color){
	/**
	 * new Dog() 
	 * this --->dog实例 
	 */
	// 1.借用构造函数继承  经典继承 
	/**
	 * 调用父构造函数并且将this指向修改为子构造函数实例 
	 */
	Animal.call(this,type,age,weight,length);
	// Animal.apply(this,[type,age,weight,length]);
	// Animal.bind(this,type,age,weight,length)();
	this.name = name;
	this.color = color;
}
//原型链继承 子构造函数的原型对象指向父构造函数的实例
Dog.prototype = new Animal();
Dog.prototype.constructor = Dog;
Dog.prototype.sayColor = function(){
	console.log(this.color)
};
// Dog.prototype.sayType = function(){
// 	console.log('我是子构造函数原型对象')
// }
var d1 = new Dog('狗',1,'10kg','50cm','可乐','白色');
console.log(d1);
d1.sayType();
d1.sayColor();

运行结果:
Dog {
  type: '狗',
  age: 1,
  weight: '10kg',
  length: '50cm',
  name: '可乐',
  color: '白色'
}
狗
白色

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值