11.5--总结es6的类class

1.正式面向对象编程,但背后仍然是原型和构造函数的概念。
2.类的定义:
(1)类声明
class Person{}
(2)类表达式
const a = class Person{}
注:与函数表达式的相同点:类在被求值之前也不能引用。
不同点:函数声明可以提升,但类不能;
函数受函数作用域限制,而类受块作用域限制。
在这里插入图片描述
3.类的构成
类可以包含构造函数方法、实例方法、获取函数、设置函数和静态类方法。默认情况下,类在严格模式下执行。
(1)首字母要大写。
(2)类表达式的名称是可选的,在把类表达式赋值给变量后,可以通过 name 属性取得类表达式的名称字符串。
在这里插入图片描述
4.类构造函数。
constructor:在使用new操作符创建类的新实例时,应该调用这个函数。这个不是必须的。
(1)实例化
使用new操作符等同于调用类的构造函数。发生如下操作:(与创建对象使用构造函数模式一样)
(1) 在内存中创建一个新对象。
(2) 这个新对象内部的[[Prototype]]指针被赋值为构造函数的 prototype 属性。
(3) 构造函数内部的 this 被赋值为这个新对象(即 this 指向新对象)。
(4) 执行构造函数内部的代码(给新对象添加属性)。
(5) 如果构造函数返回非空对象,则返回该对象;否则,返回刚创建的新对象。
类构造函数和构造函数的主要区别是:调用类构造函数必须用class。不用会出错;而调用普通构造函数不使用new的,会以全局this作为内部对象。
(2)把类当成普通的构造函数。
也是函数,也有原型,都有prototype属性,而这个原型也有constructor指向类本身;
可用instanceof操作符:{
重点在于,类中定义的 constructor 方法不会被当成构造函数,在对它使用
instanceof 操作符时会返回 false。但是,如果在创建实例时直接将类构造函数当成普通构造函数 来使用,那么 instanceof 操作符的返回值会反转
}
在这里插入图片描述
5.实例成员;
(1)在类的构造函数上定义的属性和方法会自动添加到实例上。
(2)原型方法:
在类块中定义的方法(在构造函数)之外作为原型方法。
(3)可以把方法定义在类构造函数中或者类块中,但不能在类块中给原型添加原始值或对象作为数据。
6.super():
(1)只能在派生类中使用,且仅限于构造函数、静态方法内部、实例方法,目的是调用父类的构造函数。
(2)不能单独使用。
(3)调用super()会调用父类构造函数,并将返回的实例赋值给this。
(4)需给父类构造函数传参需要手动输入。
(5)调用super()之前不能使用this。
(6)派生类中显示定义了构造函数,要么调用super(),要么返回一个对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值