2013-10-17 4 views
2

요즘 JSON 및 JavaScript 객체에 대해 많이 읽었습니다. 그러나 나는 점점 더 혼란스러워지고, 나에게있어, 그들은 종종 똑같은 것처럼 보입니다. 내 HTML 입력 상자에서 등JSON, 객체 및 클래스 혼동

function Person(Name, Lastname, Age, sGender) 
{ 
    this.Name = Name; 
    this.Lastname = Lastname; 
    this.Age = Age; 
    this.sGender = sGender; 
} 


var person = new Person(
    $('#PersonName').val(), 
    $('#PersonLastName').val(), 
    $('#PersonLastName').val(), 
    $('#PersonAge').val(), 
    $("#gender input[type='radio']:checked").val() 
); 

#PersonName은 다음과 같습니다

나는이 같은 객체에 인스턴스화 자바 스크립트 클래스를 만들었습니다. 그리고이 부분에서 나는 내가하고있는 것이 무엇인지를 안다.

그러나 나는 개체를 만드는 간단한 방법에 대해 읽어, 그래서 한번 풀어 주었다

var oPerson = 
{ 
    "Name": $('#PersonName').val(), 
    "Lastname": $('#PersonLastName').val(), 
    "Age": $('#PersonAge').val(), 
    "sGender": $("#gender input[type='radio']:checked").val() 
} 
aPeople.push(oPerson); 
return oPerson; 

을하지만 지금은 위의 코드가 무엇인지에 대해 정말 혼란 스러워요. 이 JSON 또는 JavaScript 객체입니까?

여러분 중 일부는 밝은 마음으로 나를 위해이 부분을 밝힐 수 있기를 바랍니다. :)

+0

맨 위 코드는 클래스이고, 하단 코드는 표준 JS 객체입니다. – tymeJV

+1

관련 항목 : http://stackoverflow.com/q/2904131/497356 –

답변

2

JSON = JavaScript Object Notation. 즉, JSON은 JavaScript 객체의 텍스트 표현입니다. JSON 표기법은 JavaScript 객체 (또는 최소한 JavaScript 객체의 스타일)와 동일한 구문을 사용합니다.

위의 코드에서와 같이 JavaScript로 개체를 만들 때마다 JavaScript 개체입니다. JavaScript 객체를 텍스트로 전송할 때 JavaScript에서 매우 자연스러운 JSON 표기법을 사용할 수 있습니다. 그러나 XML이나 독점적 형식과 같은 대체 형식을 사용할 수도 있습니다.

하지만 JSON은 단순히 객체를 표현한 것일뿐입니다. 그것이 코드에있을 때, 그것은 실제 객체입니다.

1

첫 번째 예에서는 클래스 Person을 만들고 Person 개체로 인스턴스화합니다. 두 번째 예제는 단지 일반 Javascript 객체 인 객체 리터럴을 만듭니다.

위 항목 중 하나는 배열 또는 개체의 문자열 표현 인 JSON입니다. 예를 들어,이 JSON입니다 :

var json = '{ "Name": "John", "LastName" : "Adnaves" }'; 

당신이 매우 밀접 자바 스크립트 객체와 유사하지만 중요한 점은 그것이 문자열입니다입니다 볼 수 있듯이. 두 번째 경우는 객체 리터럴 표기법이라고

1

, 그것의 구문은 다음과 같습니다

{ 
    propertyName: value; 
    propertyName2: value, 
    . 
    . 
    propertyNameN: value 
} 

당신이 언급 한 첫 번째 케이스가 Person에 대한 클래스를 생성, 또는 좀 더 정확하게는 : 그것은 생성자 함수입니다 Person의 인스턴스를 만드는 데 사용됩니다.

기능을 상속하고 공통 속성을 서로 공유하는 객체를 만들 때 유용합니다.

JSON * (@Pete도 마찬가지 임)은 Javascript Object Notation입니다.

이 구문은 리터럴 오브젝트과 매우 유사하지만 JSON은 기능처럼을 (그렇게 할 수있는 리터럴 표기법 개체), regexps '에 객체, 무한, NaN의 정의 등을 표현 할 수없는 어떤 일이 있습니다 ..

즉, JSON은 Object의 문자열 표현이며 (대개 속성, 해당되는 경우 상태)을 다른 컴퓨터로 전송하는 데 사용됩니다.