JS中常用实现继承的方法(Object.create的原理)

一、组合继承(最常用的继承)

这种继承方式组合了原型链和借用构造函数的方式,实现了一个最为常用继承的方式。

主要有几个很关键的步骤:

  1. 在子类构造函数调用父类构造函数,使用callapply来指定父类中的this为子类。这一步相当于子类继承了父类构造函数中属性及方法,传入参数即可。注意的是原型中的属性和方法还是访问不到的。
Person.call(this, name, age);
  1. 将子类的原型对象绑定在父类实例对象上,从而形成原型链访问到父类原型对象,并将原型对象中的constructor指向构造函数。
Student.prototype = new Person();
Student.prototype.constructor = Student;

我这有一个Person类和Student类,而Student继承自Person类:

	'use strict';

	// Person类
	function Person(name, age) {
   
		this.name = name;
		this.age = age;
	}

	// Person类的方法
	Person.prototype.sayHi = function () {
   
		console.log(`hello,this is ${
     this.name}`);
	};

	// Student类
	function Student (name, age, grade) {
   
		// 调用Person构造函数,传入参数,从而当前对象的this就有了父类的属性
		Person.call(this, name, age);
		this.grade = grade
	}

	// 实现继承,指定原型和构造器
	Student.prototype = new Person();
	Student.prototype.constructor = Student;

	Student.prototype.study = function () {
   
		console.log(`I love study,my grade is ${
     this.grade}
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值