JS继承
面向对象:
私有属性、私有方法、特权方法、静态方法、静态属性、公共属性、公共方法、继承、闭包
闭包:有权访问 另一个函数作用域中的变量 的函数
因为链式作用域问题,父级可以访问子级方法内部的变量,
将子级函数作为返回值
继承:
类式继承:
父类的实例赋值给子类的原型。
实例化父类,同时创建了父类原型,将子类原型指向声明的父类,此时子类原型可以访问父类以及父类原型。
构造函数继承:
在子类的构造函数作用域中执行父类的构造函数
子类中声明添加此句 Parent.call(this,params);
组合是继承:
类式继承+构造函数式继承
还是经典的call来调用父类构造函数,将父类重新执行一遍,类似于刷新一遍,这样多个子类实例之间不受引用类型的影响。
原型式继承:子类声明接收父类的类F,将F的原型指向进来的父类,return new F();
将父类在子类中封装返回。

<script type="text/javascript"> function inheritObject(o) { function F(){}; F.prototype = o; return new F(); } var book = { name: "js book", alikeBook: ["css", "book", "html"] }; var newbook = inheritObject(book); newbook.name = "newbook"; newbook.alikeBook.push("newbook book"); var obook = inheritObject(book); obook.name = "obook"; obook.alikeBook.push("obook book"); console.log(newbook.name); console.log(newbook.alikeBook); console.log(obook.name); console.log(obook.alikeBook); console.log(book.name); console.log(book.alikeBook); </script>
寄生式继承:是对原型式继承的封装
寄生组合式继承:写到这,我突然发现,ES6 对继承已经做了封装,思想共统一。
更多精彩原创心得,请关注微信公众号: 梯形

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
2016-01-08 设计模式(六):状态模式