javascript定义对象的几种方法
这篇讲的是JavaScript中定义对象的几种经典方法。作者从最基础的对象扩充开始,逐步深入到工厂方式、构造函数、原型方式,最后介绍了试图融合两者优点的动态原型方式。 文章的核心价值在于对这些方式的细致对比。比如,它指出了“工厂方式”虽然方便,但每次创建对象都会生成新的函数实例,无法共享;而“构造函数方式”配合`new`关键字更规范,但方法不共享的问题依然存在。真正的突破点在于“原型方式”,它通过`prototype`让所有实例共享同一个方法,但作者也用代码清晰地演示了其中的陷阱:基本类型的属性变更不会同步,但引用类型(如数组)的变更却会在所有实例间反映出来。 最终,文章推荐了“动态原型方式”,它像一个精巧的折中方案:在构造函数内部通过一个标志变量,确保方法只添加一次到原型上,这样既保证了每个实例拥有独立的属性,又实现了方法的高效共享。这篇文章清晰地展示了每种方案的代码实现与适用场景,帮你理解为何需要从一种方式演进到另一种。