Object.create:“new”的现代替代品
在 JavaScript 1.9.3 (ECMAScript 5) 中,引入了 Object .create方法成为了讨论的话题。此方法为创建对象的传统“new”运算符提供了替代方案。让我们探讨一下它的优点以及如何有效地使用它。
挑战
在提供的示例中,目标是用 Object 替换“new”的使用。 create 创建一个名为“bob”的 User 对象。
当前方法
当前的方法涉及定义一个普通对象“userB”并使用Object.create 创建“bob”作为“userB”的委托。但是,这种方法引入了一个不必要的公共“init”方法,并且名称和 ID 属性未正确初始化。
更有效的方法
Object.create当涉及到差异继承时,对象直接从现有对象继承,这才是真正的亮点。在这种情况下,我们可以使用所需的属性初始化“bob”对象作为 Object.create 的第二个参数:
var userB = { sayHello: function() { console.log('Hello ' + this.name); } }; var bob = Object.create(userB, { id: { value: MY_GLOBAL.nextId(), enumerable: true }, name: { value: 'Bob', enumerable: true } });
在这种方法中,我们将“id”和“name”属性指定为具有属性属性(可枚举、可写、可配置)的对象字面量。这允许我们设置初始值并控制它们的可访问性。
结论
Object.create 为对象创建提供了强大的机制,具有灵活的继承和属性初始化选项。通过采用 Object.create,开发人员可以提高 JavaScript 代码库的可维护性和灵活性。
以上是Object.create:它是 JavaScript 中'new”的更好替代方案吗?的详细内容。更多信息请关注PHP中文网其他相关文章!