Javascript十分灵活,是一种弱类型语言,在js中一切都是对象,而且所有对象都是易变的,
内省,运行时检查对象所具有的属性和方法,还可以使用这种信息动态实例化类和执行其方法(反射)
JS在模仿接口的三大方法:
- 注释法:使用了interface和implements关键字。易于实现,提高代码的可重用性,不影响文件尺寸和执行速度,但是不会 对是否实现了正确的方法进行检查,不会抛出问题,对于测试和调试没什么用
- 用属性检查模仿接口:将接口名称放在一个数组中,。类显示自己支持什么借口,任何一个要求其参数属于特定类型的函 数都可以对这个属性进行检查,抛出错误。主要缺点是并未确保类真正实现自称实现的接口
- 用鸭式辨型模仿接口:“像鸭子一样走路并嘎嘎叫就是鸭子”如果对象具有与接口定义的方法同名的所有方法,那么就可以认为它实现了所有的方法。降低了代码的可重用性,只关心方法的名称,不检查参数的名称数目
封装和信息隐藏
封装可以被定义为对对象的内部数据表现形式和是西安细节进行隐藏。JS中没有像JAVA里的private一样声明一个私有方法,所以只能通过闭包的概念来创建只允许从对象内部访问的方法和属性
创建对象的三种基本模式:
1.门户大开型对象 2.下划线表示私用属性 3.用闭包实现私用成员