JavaScript中实现类:函数名大写,使用new关键字进行实例化(ES6中引入了class关键字实现类)
封装属性和方法
- 私有属性(方法):利用函数作用域,直接在函数内定义的属性或方法,在外部不能访问
- 静态属性(方法):直接使用类名点方法添加(该属性或方法只能通过类名调用)
- 公有属性(方法):挂载在原型上(所用实例都可以访问和修改)
- 实例属性(对象共有属性):绑定到this的属性方法(每个实例独有,互不干扰)
- 构造器:绑定到this的可以改变实例属性的方法
闭包:是有权访问另外一个函数作用域中变量的函数,即在一个函数内部创建另外一个函数。
注意实例化对象时,经常会忘记使用new关键字,这使得类中的this并不指向当前实例(往往指向全局对象),最好创建对象的安全模式
创建对象的安全模式:使用this是判断this是否是当前这个对象(使用instanceof),如果不是则返回new新实例。