OOP - 对象列表的公共属性

时间:2016-07-13 19:26:05

标签: javascript oop

我正在构建一个对象列表。

看起来像这样:

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"

这是一种做这样的事情吗?

感谢您的帮助。

1 个答案:

答案 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中使用。

但是在某些情况下你必须使用类,所以要知道它是如何工作的并不是一个坏主意。