Javascript面向对象编程(三):非函数对象的继承
这篇讲的是JavaScript中非函数对象如何实现继承。作者延续了面向对象编程系列的讨论,聚焦于一个常见但容易忽略的场景:当你需要创建的对象本身不是函数,而是一个普通的数据对象(比如一个配置对象或字典)时,如何让它也能便捷地继承另一个对象的属性和方法。 文章深入对比了几种可行的方案。一种是利用构造函数和原型链的传统方式,但作者指出这对于非函数对象来说略显笨重。更巧妙的方案是直接使用`Object.create()`方法,它能基于一个现有对象创建一个新对象,并将该对象指定为新对象的原型,从而实现干净利落的继承。文中通过代码示例,清晰地展示了如何设置原型、处理属性查找,以及这种方式在保持对象纯净性上的优势。 作者强调,选择哪种方式取决于你的具体需求:如果需要的是一个全新的、可复用的“蓝图”,传统构造函数仍有其价值;但如果只是想快速创建一个带有特定行为的数据对象,`Object.create()`配合直接设置原型,是更简洁、更符合现代JavaScript习惯的做法。理解这些差异,能帮助你在编写模块化和可维护代码时做出更合适的选择。