제이스크립트 객체 정의

제이스크립트에서 객체는 왕입니다. 객체를 이해하면 제이스크립트를 이해했습니다.

제이스크립트에서 거의 "모든 것"은 객체입니다.

  • 부울은 객체입니다(만약 new 키워드 정의)
  • 숫자는 객체입니다(만약 new 키워드 정의)
  • 문자열은 객체입니다(만약 new 키워드 정의)
  • 날짜는 항상 객체입니다
  • 수학은 항상 객체입니다
  • 정규 표현식은 항상 객체입니다
  • 배열은 항상 객체입니다
  • 함수는 항상 객체입니다
  • 객체는 항상 객체입니다

모든 제이스크립트 값은 원시 값을 제외하고 모두 객체입니다.

제이스크립트 원시 값

원시 값속성이나 메서드가 없는 값을 의미합니다.

원시 데이터 타입원시 값을 가진 데이터를 의미합니다.

제이스크립트는 5가지 원시 데이터 타입을 정의했습니다:

  • string
  • number
  • boolean
  • null
  • undefined

원시 값은 불변합니다(그들은 고정된 코드로 작성되었기 때문에 변경할 수 없습니다).

x = 3.14을 가정하면, x의 값을 변경할 수 있습니다. 하지만 3.14의 값을 변경할 수는 없습니다.

속성 형식 주석
"Hello" string "Hello"는 항상 "Hello"입니다
3.14 number 3.14는 항상 3.14입니다
true boolean true는 항상 true입니다
false boolean false는 항상 false입니다
null null (object) null은 항상 null입니다
undefined undefined undefined는 항상 undefined입니다

객체는 변수를 포함하는 변수입니다

제이스크립트 변수는 단일 값을 포함할 수 있습니다:

예제

var person = "Bill Gates";

직접 테스트해 보세요

객체는 변수입니다. 하지만 객체는 많은 값을 포함할 수 있습니다.

값은이름 : 값의 형식으로 작성됩니다(이름과 값은 콜론으로 구분됩니다).

예제

var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};

직접 테스트해 보세요

제이스크립트 객체는이름 값의 집합입니다.

객체 속성

제이스크립트 객체의 이름 값은의 객체 속성입니다.

의 객체 속성입니다. 속성
firstName
Bill lastName
Gates age
62 eyeColor

이름 값 쌍으로 작성된 객체는 다음과 같습니다:

  • PHP의 연관 배열
  • 파이썬의 딕셔너리
  • C의 해시 테이블
  • C의 해시 테이블
  • Java의 해시 매핑

객체 속성은 원시 값, 다른 객체 및 함수일 수 있습니다.

Ruby와 Perl의 해시메서드는 객체에서 실행할 수 있는

동작

객체 속성은 원시 값, 다른 객체 및 함수일 수 있습니다.对象方法는 포함함수 정의

의 객체 속성입니다. 속성
firstName
Bill lastName
Gates age
62 eyeColor
blue fullName

function() {return this.firstName + " " + this.lastName;}

JavaScript 객체는 속성과 메서드로 불리는 이름付け된 값의 컨테이너입니다.

다음 장에서 더 많은 방법을 배울 것입니다.

JavaScript 객체 생성

JavaScript를 사용하여 자신의 객체를 정의하고 생성할 수 있습니다.

  • 객체를 생성하는 방법은 여러 가지가 있습니다:
  • 단일 객체를 정의하고 생성하려면 객체 텍스트를 사용합니다.
  • 단일 객체를 정의하고 생성하려면 키워드 new를 사용합니다.

객체 생성자를 정의하고 생성자 유형의 객체를 생성할 수 있습니다. ECMAScript 5에서는 함수를 통해도 Object.create()

객체를 생성하려면

객체를 생성하는 가장 간단한 방법입니다.

객체 텍스트를 사용하여 한 문장에서 객체를 정의하고 생성할 수 있습니다.

객체 텍스트는 괄호를 의미합니다 {} 의 이름:값 쌍(예를 들어 age:62)이 있습니다.

아래의 예제도 네 개의 속성을 가진 새로운 JavaScript 객체를 생성합니다:

예제

var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};

직접 테스트해 보세요

빈 공간과 줄 바꿈은 중요하지 않습니다. 객체 정의는 여러 행에 걸쳐서 정의될 수 있습니다:

예제

var person = {
    firstName:"Bill",
    lastName:"Gates",
    age:62,
    eyeColor:"blue"
};

직접 테스트해 보세요

JavaScript 키워드 new를 사용하여

아래의 예제도 네 개의 속성을 가진 새로운 JavaScript 객체를 생성합니다:

예제

var person = new Object();
person.firstName = "Bill";
person.lastName = "Gates";
person.age = 50;
person.eyeColor = "blue"; 

직접 테스트해 보세요

위의 두 예제의 결과는 같습니다. 사용할 필요가 없습니다. new Object()

간결성, 읽기 쉽고 실행 속도를 고려하여, 첫 번째 생성 방법(객체 텍스트 방법)을 사용하세요.

JavaScript 객체는 변할 수 있습니다

객체는 변할 수 있습니다: 그들은 참조를 통해 주소를 찾습니다. 그렇지 않습니다.

person이 객체인 경우, 아래의 문장은 person의 복사본을 생성하지 않습니다:

var x = person;  // 이는 person의 복사본을 생성하지 않습니다.

객체 x 아니요 person의 복사본입니다. 그리고이것은 person.x와 person은 동일한 객체입니다.

x에 대한 어떤 변경도 person을 변경합니다. 왜냐하면 x와 person은 동일한 객체이기 때문입니다.

예제

var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"}
var x = person;
x.age = 10;           // 이는 동시에 x.age와 person.age를 변경합니다

직접 테스트해 보세요

주의사항:JavaScript 변수는 변하지 않습니다. 오직 JavaScript 객체만 변합니다.