封装
把一些属性装起来, 外部不能直接访问.
在函数中用 this 声明外部能调用的方法.
继承
一个功能继承另一个功能的一些属性.
可以使用 apply/call/super/copy 方法实现继承
多态
把做什么
和谁去做
分开.
伪代码:
// 多态前
function toDo(人) { // 函数里没有把 `谁去做` 和 `做什么` 分开
if(人=== 学生) {
console.log(读书)
}
if(人=== 老师) {
console.log(教书)
}
}
toDo(学生)
// 多态后
学生.toDo = () => console.log(`读书`)
老师.toDo = () => console.log(`教书`)
学生.todo()
参考
- 浅谈JavaScript的面向对象和它的封装、继承、多态 https://segmentfault.com/a/1190000017342103
- js中实现多态 https://www.cnblogs.com/aliwa/p/6440945.html
- JS中的多态实例详解 https://www.jb51.net/article/125795.htm