【金秋打卡】第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 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦