2016-07-13 9 views
1

オブジェクトのリストを作成しています。OOP - オブジェクトのリストの共通プロパティ

それは次のようになります。

var item = {} // new object 
item['d'] = { 
    element: 'string', 
    val_1: false, 
    val_2: false, 
    val_3: false 
} 

これらの各オブジェクトは、家族やクラスの一種に属することができます。私はOOPのクラスのコンセプトを完全に理解していません。

私は2つのファミリーを持っています:左右。簡単にそれを呼び出すことができること、

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 

} 

そして:

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 
} 

このような何かを持っているだろう。代わりに、このような何かをやっての私は何をしたいのですが、

like:

console.log(item[left][d].element) // would echo "Something" 

このような処理を行う方法はありますか?

ありがとうございました。

+4

JavaScriptを使用しないでOOPを学びたい場合は、私の提案です。コンセプトに適した言語を使用してください。 – scrappedcola

+1

はい!特に、クラスベースのOOPについて学びたい場合は、JSクラスのキーワードは実際にクラスベースのOOPではなく、プロトタイプベースのOOPのまわりの構文的な砂糖であるためです。 – Lux

+0

あなたの答えをありがとう。私はOOPを学ぼうとしていない、私はこのことを行うためにjavascriptを使用する必要があります。 – Cephou

答えて

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 

それを使用します

個人的に私はそれを使用していない、ほとんどの場合、オブジェクトまたは関数は、JavaScriptで動作するのに十分です。

しかし、いくつかのケースではクラスを操作する必要があるので、どのように動作するかを知ることは悪い考えではありません。

関連する問題