我正在构建一个对象列表。
看起来像这样:
var item = {} // new object
item['d'] = {
element: 'string',
val_1: false,
val_2: false,
val_3: false
}
这些对象中的每一个都可以属于一个家族或类别。我对 OOP 中类的概念没有完全理解。
我会有两个家庭:左边和右边。
我想做的,而不是做这样的事情:
item['d_right'] = {
element: 'Whatever',
val_1: false,
val_2: false,
val_3: false
}
item['d_left'] = {
element: 'Something',
val_1: false,
val_2: false,
val_3: false
}
会是这样的:
class right {
item['d'] = {
element: 'Whatever',
val_1: false,
val_2: false,
val_3: false
}
// Other elements from the class right
}
class left {
item['d'] = {
element: 'Something',
val_1: false,
val_2: false,
val_3: false
}
// Other elements from the class left
}
然后,可以像这样轻松地调用它:
console.log(item[left][d].element) // would echo "Something"
这是做这样事情的方法吗?
感谢您的帮助。
最佳答案
这就是 Javascript 的工作原理,明智地使用它
class middle {
constructor(element) {
this.var1 = 1;
this.var2 = 2;
this.element = element;
}
}
class left extends middle {
constructor() {
// calls the constructor of middle
super("left_element")
}
}
var myLeft = new left()
myLeft.var1 // -> 1
但是,有很多讨论,不管它好不好,因为正如其他人已经说过的,它更像是一个基于 js 原型(prototype)功能之上的语法糖。
我个人没有使用它,在大多数情况下,一个对象或函数就足以在 javascript 中使用。
但是在某些情况下您必须使用类,所以了解它是如何工作的并不是一个坏主意。
关于javascript - OOP - 对象列表上的公共(public)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38360130/