2016-07-13 2 views
1

개체 목록을 작성하고 있습니다.OOP - 개체 목록의 공통 속성

그것은 다음과 같습니다 이러한 개체의 각 가족이나 클래스의 종류에 속할 수

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

. 나는 OOP 수업의 개념을 완전히 이해하지 못한다.

두 개의 패밀리가 있습니다. 왼쪽과 오른쪽입니다. 내가 대신이 같은 일을 수행하고 싶습니다 무엇

: 쉽게 호출 할 수있는, 다음

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

제 제안은 자바 스크립트를 사용하지 않는 OOP를 배우려는 것입니다. 개념에 더 적합한 언어를 사용하십시오. – scrappedcola

+1

예! 특히 클래스 기반 OOP에 대해 배우고 싶다면 JS 클래스 키워드는 실제로 클래스 기반 OOP가 아니라 OOP 기반 프로토 타입 기반 구문 론적 설탕이기 때문입니다. – Lux

+0

답변 해 주셔서 감사합니다. 나는 OOP를 배우려고하지 않고,이 일을하기 위해 자바 스크립트를 사용해야한다. – Cephou

답변

2

이는 자바 스크립트를 작동하는 방법이다, 그것은 좋은거나하지 않으면 다른 사람들이 이미 말했듯이 더 문법 설탕이 켜져 있기 때문에 많은 논의가있다, 그러나 현명하게

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 

사용

개인적으로 나는 그것을 사용하지 않고 있으며, 대부분의 경우 객체 나 기능으로는 자바 스크립트로 작업하기에 충분합니다.

그러나 어떤 경우에는 수업을해야하므로 제대로 작동 하는지를 아는 것은 좋지 않습니다.