JavaScript 面向对象
在这一讲中,我们将学习 JavaScript 面向对象的基本知识和技巧,提升代码层面的面向对象设计和编码能力。
- 封装
- 一种通过接口抽象将具体实现包装并隐藏起来的方法。
- 封装的机制包含两部分
- 限制对对象内组件直接访问的机制。
- 将数据绑定起来,对外提供方法,从而改变对象状态的机制。
- 闭包:是引用了自由变量的函数。我的理解是常规的函数在执行完后就会被销毁,而闭包由于它返回了函数,并且函数引用了闭包中的变量。所以不会被销毁。
- 纯函数:与闭包相对,函数不允许引用任何自由变量。
- 安全和幂等
- 闭包的调用是不安全的,因为他可能改变对象内部的属性;同时它是不幂等的,因为一次调用和多次调用产生的结果可能不同。
- 纯函数是安全的、幂等的。
- 继承
- 一个对象或者类能够自动保持另一个对象或者类的实现的一种机制。
- JavaScript 中最常见的是原型链继承,这样原型的设计在常见的静态语言中并不常见。
- 构造继承
- 多态
- 同样的接口,有着不同的实现。
- JavaScript 中没有接口关键字,可以通过同名方法在不同类中有着不同的实现来达到多态的效果。
- 对象创建
- JavaScript 的对象创建其实是有很多坑的。
- this 的指向,this 的绑定方式。
- new 到底做了什么
- 对象的继承 Object.create(null)
思考
JavaScript 的面向对象是比较坑的,需要多理解。这部分也是面试题的重灾区。
网友评论