2010-11-19 9 views
0

{}을 (를) 사용하여 개체를 만들고 속성을 참조하려고하면 어떻게해야합니까?개체 구문 및 자바 스크립트

function Person(){ 
    this.name : "test"; 
    } 

    var x = new Person(); 
    alert(x.name); 
+1

무엇을 묻는 중입니까? 객체 리터럴에 – SLaks

답변

0

다른 속성에 액세스하는 것과 같은 방식입니다. 예를 들어

:

alert({ name: -1 }.name); 

귀하의 코드 샘플은 유효하지 않은 구문입니다.
: 문자는 리터럴의 개체에만 사용됩니다.

당신은 정상 할당을 사용해야 생성자 속성 (또는 다른) 기능을 사용하려면 다음 경우

function Person(){ 
    this.name = "test"; 
    //  ^--- =, not : 
} 

var x = new Person(); 
alert(x.name); 

: 귀하의 구문은 귀하의 경우 당신은 단순히 이렇게 꺼져

function Person(){ 
    var thing = "test";  //Assign a variable 
    this.name = "test";  //Assign a property 
} 
alert(new Person().name); 
+0

이 있으면 변수를 비공개로 유지하는 방법이 있습니까? – steve

+0

@steve : 객체 리터럴은 일반 객체를 만듭니다. 아니요. – SLaks

+0

감사합니다. 언제 객체 리터럴이나 정규 구문을 사용해야합니까? – steve

5

정말로 객체 리터럴 구문을 사용하고 싶다면 가능하면 생성자 함수 (코드에서 가지고있는 것)에서 피하는 것이 가장 좋습니다. 당신도 그런 식으로 함수를 정의 할 수 있습니다

var Person = { 
    name: "test" 
}; 
alert(Person.name); 

(사람들이 할) : 이것은 예를 들어, 작동하지만 원래의 코드와 동일하지 않습니다

var Person = { 
    name: "test", 
    speak: function() { 
     alert(this.name); 
    } 
}; 
Person.speak(); // alerts "test" 

을 ... I 있지만, I prefer named functions (그 기능은 익명) 때문에 그 일을하는 팬이 아닙니다.

0
my_obj = {name:'john', age:31}; 
alert(my_obj.name);