2014-06-09 2 views
1

AngularJs에서 C++ 또는 Java (GWT를 사용하는 동안)에서와 같이 다음과 같은 기능을 사용하고 싶습니다.강력한 클래스 구조 AngularJS

클래스 B의 객체 및 그 반대의 참조 목록이있는 클래스 A를 사용하므로이 같은 것을 말할 수 있습니다. A's_object-> B's_reference-> show_B's_property

class A{ 
list<B*> B_ref;//points to B's class objects 
......and more 
} 

class B{ 
list<A*> A_ref;//points to A's class objects 
......and more 
} 

나는 그것이 가능하다조차 의미?

답변

2

AngularJS와 가이드하세요되어 쉽게 단일 생성하는 HTML, CSS, 자바 스크립트를 사용하는 프레임 워크를 페이지 응용 프로그램. 귀하의 질문은 AngularJs 프레임 워크가 아닌 Javascript에 관한 것입니다.

당신이 찾고있는 행동의 종류는 언어의 특성상 자바 스크립트에서보기가 어려울 것입니다. Javascript는 C++ 및 Java와 같은 방식으로 클래스를 지원하는 언어가 아닙니다. Javascript는 객체 지향이 아닌 기능 기반의 동적 언어입니다.

자바 스크립트는 클래스를 지원할 수 있지만 C++ 및 Java와 같은 언어에서는 익숙하지 않은 방식과 다릅니다. Javascript는 대신 프로토 타입을 사용합니다. 기본적으로 각 객체는 관련된 프로토 타입 (C++ 및 Java 클래스의 정적 동작과 다소 유사 함)을 가지고 있으며이 프로토 타입은 메서드 및 속성으로 꾸밀 수 있습니다. 새 객체는 기존 객체에서 복제되며 새 객체의 프로토 타입은 원래 프로토 타입에서 상속됩니다.

이렇게하면 많은 객체 지향 기능을 Javascript에서 모방 할 수 있습니다. Javascript와 C++와 같은 언어의 차이점에 대해 읽어 보는 것이 좋습니다.

1
function A(color) { 
    this.bRef = []; 
    this.color = color; 
    // and more 
} 

function B(name) { 
    this.aRef = []; 
    this.name = name; 
    // and more 
} 

var a = new A(); 
var b1 = new B('foo'); 
var b2 = new B('bar'); 

a.bRef.push(b1); 
a.bRef.push(b2); 

var a1 = new A('red'); 
var a2 = new A('black'); 

b1.aRef.push(a1); 
b1.aRef.push(a2); 

console.log(a.bRef[1].name); // bar 
console.log(a.bRef[0].aRef[0].color); // red 
console.log(a.bRef[0].aRef[1].color); //black 

b2.name = 'boo'; 

console.log(a.bRef[1].name); // boo 
+0

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript

http://en.wikipedia.org/wiki/Prototype-based_programming

내가 원했던 실제로 무엇을하지만, 감사는 다소 도움이되었다. Jonathan이 JS에서 그런 기능을 가질 수 없다고 생각합니다. :) – CoderBoy