为了账号安全,请及时绑定邮箱和手机立即绑定

【金秋打卡】第9天 再学JavaScript ES(6-10)全版本语法大全

标签:
JavaScript

课程名称:再学JavaScript ES(6-10)全版本语法大全
课程章节:2-13 Class基础语法(怎么声明一个类?)
课程讲师: 快乐动起来呀
课程内容:

类:多个具有相同属性、方法的对象集合称为类,类更像是一个模板
对象:可以拥有多个属性、方法的集合称为对象,对象是类创造出来的实例
ES5是没有直接定义类的方法,通过构造函数来模拟一个类:

function Animal(){    
	this.type = type;    
	this.eat = function(){
	console.log('i am eat food')
	}
}
	let dog = new Animal('dog');
	let monkey = new Animal('monkey')

我们在实例化两个对象的时候,会在每个实例对象有一个eat方法,很占内存,eat作为公共方法,这样实例完以后每个对象都有各自的eat,我们修改其中的一个并不会同步修改另一个,违背了继承原则,继承原则就是当我们修改了父类的eat方法,所有实例对象都应该随之改变,基于以上原则,我们应该把共有的放在原型对象prototype上,私有的放在构造函数内部。

Animal.prototype.eat= function(){
	console.log('i am eat food')
}

ES6 Class定义类 改写es5

class Animal {    
	//constructor方法内部的代码,相当于ES5中构造函数内部的代码
	constructor(type){        
		this.type = type
	}    
	//constructor方法外部写的相当于ES5中Animal.prototype上的代码    
	eat(){ 
		console.log('i am eat food')
	}
}

ES5利用构造函数实现类和ES6通过Class定义的类是完全一样的,es6的class是es5的语法糖

继承父类和子类原型链的方法做继承:
把公有的属性和方法写在父类的prototype属性中。
这样实例对象本身是没有这个方法,避免多个实例对象有多个公共的方法,占空间。
子类继承父类,父类修改后子类也应该修改,但是当我们修改在子类修改了父类继承过来的方法,其他子类是不变的。
注意:
1.es5中要把共有的方法和属性放到构造函数的protot上去;
2.要把函数当成构造函数去用;
3.要把独一份放在构造函数中,把共有的放在原型链上去;

课程收获:复习了es5是怎么声明类及es6新特性

图片描述

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消