封装
封装的机制包括:
- 限制对象外部访问内部变量
- 将数据和方法绑定,对外提供方法,从而改变内部变量
使用闭包实现私有化属性
闭包也就是引入一个自由变量的函数,扮演的作用是为函数提供一个上下文
继承
JS的继承方式是原型链继承
多态
JS定义对象的方式非常灵活,可以直接调用对象名称创建实例,也可以new一个实例,两者的区别在于直接调用是没有“归属”的,会归于window对象下,new的实例会有一个新的this上下文
new一个关键字的时候,Javascript的实现步骤:
- 先创建一个名称为x的对象
- 绑定原型链
- 指定对象自己,this = x,并且调用对象的方法
- 最后return,先确定return 的值typeof 是否等于 ‘object’,如果不等于直接返回对象本身