javascript - OOP - 对象列表上的公共(public)属性

标签 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"

这是做这样事情的方法吗?

感谢您的帮助。

最佳答案

这就是 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/

相关文章:

javascript - iOS PhoneGap 应用上的 HTML5、JS、图像注释

php - 无法重新声明类 - 检查类是否已存在

javascript延迟不起作用

javascript - 如何在odoo中从JS调用python函数?

java - 从输入流读取并从数据创建特定实例

c++ - 未解析的外部符号 - 静态

python:表示包裹自身的方形网格(圆柱体)

C# 泛型类型参数跨类共享

javascript - 如何在javascript中将两个值检查组合成一行

javascript - 预加载、延迟加载页面 Ionic 4