我正在构建一个对象列表。
看起来像这样:
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"
这是一种做这样的事情吗?
感谢您的帮助。
答案 0 :(得分:2)
这是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的原型特征之上的语法糖..
我个人没有使用它,在大多数情况下,对象或函数足以在javascript中使用。
但是在某些情况下你必须使用类,所以要知道它是如何工作的并不是一个坏主意。