최신 웹 개발 튜토리얼
 

JavaScript사물


자바 스크립트 객체

자바 스크립트에서 객체는 왕이다. 당신이 목적을 이해한다면, 당신은 자바 스크립트를 이해합니다.

자바 스크립트에서 거의 '모든'것을 목적으로한다.

  • Booleans 객체 (또는 객체로 취급 기본 데이터) 될 수 있습니다
  • Numbers 객체 (또는 객체로 취급 기본 데이터) 될 수 있습니다
  • Strings 객체 (또는 객체로 취급 기본 데이터) 될 수 있습니다
  • Dates 항상 객체입니다
  • Maths 항상 개체입니다
  • Regular 표현식은 항상 개체입니다
  • Arrays 항상 개체입니다
  • Functions 항상 개체입니다
  • Objects 객체

자바 스크립트에서는 모든 값은 기본 값을 제외하고, 객체입니다.

원시 값은 다음과 같습니다 문자열 ("John Doe") , 숫자 (3.14), true, false, null , 그리고 undefined .


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

자바 스크립트 변수는 하나의 값을 포함 할 수 있습니다 :

var person = "John Doe";
»그것을 자신을 시도

개체가 너무 변수입니다. 그러나 개체가 많은 값을 포함 할 수 있습니다.

쌍 (이름과 콜론으로 구분 된 값) 값은 이름으로 기록됩니다.

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
»그것을 자신을 시도

자바 스크립트 객체라는 값의 모음


개체 속성

명명 된 값은 자바 스크립트 객체에 속성이라고합니다.

재산
firstName John
lastName Doe
age 50
eyeColor blue

이름 값 쌍으로 기록 된 객체는 비슷합니다 :

  • PHP의 연관 배열
  • 파이썬에서 사전
  • C에서 해시 테이블
  • 자바 해시지도
  • 에 해시 Ruby 와 펄

개체 방법

방법은 개체에 대해 수행 할 수있는 작업입니다.

개체 속성은 기본 값, 다른 개체 및 기능을 모두 할 수 있습니다.

객체 메소드 함수 정의를 포함하는 객체의 속성이다.

재산
firstName John
lastName Doe
age 50
eyeColor blue
fullName function() {return this.firstName + " " + this.lastName;}

자바 스크립트 객체는 이름 값라는 속성과 메서드에 대한 컨테이너입니다.

당신은 다음 장에서 방법에 대한 자세한 내용을 배울 것입니다.


자바 스크립트 객체를 생성

자바 스크립트를 사용하면 정의하고 자신의 개체를 만들 수 있습니다.

새 개체를 만들 수있는 여러 가지 방법이 있습니다 :

  • 객체 리터럴을 사용하여 정의하고 하나의 개체를 만듭니다.
  • 정의하고 new 키워드로, 하나의 개체를 만듭니다.
  • 객체 생성자를 정의하고 구성 형식의 개체를 만들 수 있습니다.

인 ECMAScript 5에서, 객체는 함수를 만들 수 있습니다 Object.create() .


객체 리터럴을 사용하여

이것은 자바 스크립트 객체를 생성 할 수있는 가장 쉬운 방법입니다.

정의하고 한 성명에서 객체를 생성 모두 객체 리터럴을 사용.

(같은 값 쌍 : 객체의 문자가 이름의 목록입니다 age:50 ) 중괄호 {} .

다음의 예는 네 가지 속성을 가진 새로운 자바 스크립트 객체를 생성합니다 :

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
»그것을 자신을 시도

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

var person = {
    firstName:"John",
    lastName:"Doe",
    age:50,
    eyeColor:"blue"
};
»그것을 자신을 시도

자바 스크립트 키워드 새로운 사용

다음의 예는 네 가지 속성을 가진 새로운 자바 스크립트 객체를 생성합니다 :

var person = new Object();
person.firstName = "John";
person.lastName = "Doe";
person.age = 50;
person.eyeColor = "blue";
»그것을 자신을 시도

두 가지 예는 위의 동일 않습니다. 사용할 필요가 없습니다 new Object() .
단순성 가독성 실행 속도를 들어, 첫 번째 (객체 리터럴 방법)를 사용한다.


개체의 생성자를 사용하여

예는 위의 여러 상황에서 제한됩니다. 그들은 단지 하나의 개체를 만듭니다.

때때로 우리는 한 종류의 많은 객체를 생성하는 데 사용할 수있는 "개체 유형"이 것을 좋아합니다.

에 "객체 입력"을 생성하는 표준 방법은 객체의 생성자 함수를 사용하는 것이다 :

function person(first, last, age, eye) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eye;
}
var myFather = new person("John", "Doe", 50, "blue");
var myMother = new person("Sally", "Rally", 48, "green");
»그것을 자신을 시도

상기 함수 (사람)은 객체의 생성자이다.

당신은 객체 생성자가되면, 당신은 동일한 유형의 새 개체를 만들 수 있습니다 :

var myFather = new person("John", "Doe", 50, "blue");
var myMother = new person("Sally", "Rally", 48, "green");

this 키워드

자바 스크립트라는 것은에서 this 자바 스크립트 코드를 "소유"하는 것을 목적으로한다.

의 값 this 함수에 사용되는 경우,이 기능을 "소유"하는 것을 목적으로한다.

this 객체에 사용될 때, 객체 자체이다.

this 객체 생성자의 키워드는 값이 없습니다. 그것은 새 개체 만 대체합니다.

의 값 this 생성자는 객체를 생성하는 데 사용되는 경우 새 개체가 될 것이다.

이 변수가 아닙니다. 이 키워드입니다. 당신의 값을 변경할 수 없습니다 this .


내장 된 자바 스크립트 생성자

자바 스크립트는 기본 개체에 대한 기본 생성자가 있습니다 :

var x1 = new Object();    // A new Object object
var x2 = new String();    // A new String object
var x3 = new Number();    // A new Number object
var x4 = new Boolean()    // A new Boolean object
var x5 = new Array();     // A new Array object
var x6 = new RegExp();    // A new RegExp object
var x7 = new Function();  // A new Function object
var x8 = new Date();      // A new Date object
»그것을 자신을 시도

Math() 개체가 목록에 없습니다. 수학은 글로벌 개체입니다. 새로운 키워드 연산에 사용될 수 없다.

당신은 알고 계십니까?

당신이 볼 수 있듯이, 자바 스크립트는 기본 데이터 유형 문자열, 숫자 및 부울 버전의 개체가 있습니다.

복잡한 개체를 만들 이유가 없습니다. 원시 값은 훨씬 빠르게 실행합니다.

그리고 새로운 사용할 이유가 없다 Array() . 대신 배열 리터럴을 사용하여 : []

그리고 새로운 사용하는 이유가 없습니다 RegExp() . 대신 패턴 리터럴을 사용하여 /()/

그리고 새로운 사용할 이유가 없다 Function() . 대신에 함수 표현식을 사용하여 function () {} .

그리고 사용하는 이유가 없습니다 new Object() . 대신 객체 리터럴을 사용하여 {}

var x1 = {};            // new object
var x2 = "";            // new primitive string
var x3 = 0;             // new primitive number
var x4 = false;         // new primitive boolean
var x5 = [];            // new array object
var x6 = /()/           // new regexp object
var x7 = function(){};  // new function object
»그것을 자신을 시도

자바 스크립트 객체는 변경 가능한 있습니다

객체는 변경할 수 있습니다 : 그들은하지 값, 참조에 의해 해결된다.

Y는 객체 인 경우, 다음 명령문은 Y의 복사본을 생성 할 것이다 :

var x = y;  // This will not create a copy of y.

객체 X는 Y의 사본이 아니다. 그것은 Y입니다. x와 같은 객체에 y를 점 모두.

x와 y가 같은 오브젝트이기 때문에 Y에 대한 변경은, 배 변경됩니다.

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}

var x = person;
x.age = 10;           // This will change both x.age and person.age
»그것을 자신을 시도