你不知道的JS系列上( 42 ) - JS 类的机制
“类”和“实例”的概念来源于房屋建造。
建筑蓝图只是建筑计划,它们并不是真正的建筑,我们还需要建筑工人来建造建筑。建筑工人会按照蓝图建造建筑。实际上,他会把规划好的特性从蓝图中复制到现实世界的建筑中
建筑成为了蓝图的物理实例,本质上就是对蓝图的复制。
如果你想打开一扇门,那就必须接触真实的建筑才行-蓝图只能表示门应该在哪,但并不是真正的门。
类仅仅是一个抽象的表示,描述了需要做的事,必须先实例化类然后才能对它进行操作
类实例是由一个特殊的类方法构造的,这个方法通常与类同名,被称为构造函数。这个方法的任务就是初始化啊实例需要的所有信息(下列是伪代码)
class CoolGuy { specialTrick = nothig CoolGuy(trick) { specialTrick = trick } showOff () { console.log('Here is my trick: ', this.specialTrick) } } var Joe = new CoolGuy('jumping'); Joe.showOff();
CoolGuy 类有一个 CoolGuy() 构造函数,执行 new CoolGuy() 时实际上调用的就是它。构造函数会返回一个对象,也就是类的一个实例,之后我们可以在这个对象上调用 showOff() 方法,来输出指定的特长。
类构造函数属于类,而且通常和类同名。构造函数大多需要 new 来调,这样语言引擎才知道你想要构造一个新的类实例。
在 es6 语法中统一由 constructor 表示类的构造函数
class CoolGuy { constructor(trick) { this.specialTrick = trick } showOff () { console.log('Here is my trick: ', this.specialTrick) } } var Joe = new CoolGuy('jumping'); Joe.showOff()