【发布时间】:2019-03-17 13:03:06
【问题描述】:
一段时间以来,我一直在尝试围绕对象组合进行思考,但我似乎无法找到“正确的方法”来完成我之前使用 OOP 所做的事情。假设我有一个带有 3 个变量的类 Entity,使用 OOP 我只需创建一个类 Entity 并且该类的所有子级都将具有这 3 个属性,但是使用对象组合我似乎无法理解我应该如何模仿这种继承。
const Entity = {
let self = {
x: 0,
y: 0,
z: 0,
}
我是否需要在我创建的所有其他需要它们的对象中创建这些属性?或者有没有更好的方法来重用这些属性?
const ObjectX = {
let state = {
x: 0,
y: 0,
z: 0,
abc: 0,
cba: 0,
return Object.assign(state, canDoX);
}
const ObjectY = {
let state = {
x: 0,
y: 0,
z: 0,
foo: 0,
bar: 0,
return Object.assign(state, canDoY);
}
【问题讨论】:
-
对象字面量不应在属性列表末尾有返回值或逗号。
-
您向我们展示的代码甚至不会编译
const Entity = {}是文字对象声明,应该遵循的是键/值对,但是您有一些let self语句,这绝对是不正确的,并且会自动抛出错误。 -
Entity and all the children of this class would have these 3 properties,在 Javascript 中你会使用原型,但首先你需要创建一个类,而不是一个对象.. -
@Keith 创建一个类很酷,但它只是语法糖,所以我不会说你需要创建一个,但也许你应该 b> 创建一个。我认为了解底层函数和对象在 javascript 中的工作方式很重要,以便了解 Class 在 javascript 中的工作方式。
-
@MatusDubrava 我一直在关注这个guide,所以我认为这是这样做的方法。
标签: javascript composition object-composition