자바 스크립트 객체
자바 스크립트에서 객체는 왕이다. 당신이 목적을 이해한다면, 당신은 자바 스크립트를 이해합니다.
자바 스크립트에서 거의 '모든'것을 목적으로한다.
- Booleans 객체 (또는 객체로 취급 기본 데이터) 될 수 있습니다
- Numbers 객체 (또는 객체로 취급 기본 데이터) 될 수 있습니다
- Strings 객체 (또는 객체로 취급 기본 데이터) 될 수 있습니다
- Dates 항상 객체입니다
- Maths 항상 개체입니다
- Regular 표현식은 항상 개체입니다
- Arrays 항상 개체입니다
- Functions 항상 개체입니다
- Objects 객체
자바 스크립트에서는 모든 값은 기본 값을 제외하고, 객체입니다.
원시 값은 다음과 같습니다 문자열 ("John Doe") , 숫자 (3.14), true, false, null , 그리고 undefined .
개체 변수를 포함하는 변수입니다
자바 스크립트 변수는 하나의 값을 포함 할 수 있습니다 :
개체가 너무 변수입니다. 그러나 개체가 많은 값을 포함 할 수 있습니다.
값 쌍 (이름과 콜론으로 구분 된 값) 값은 이름으로 기록됩니다.
자바 스크립트 객체라는 값의 모음
개체 속성
명명 된 값은 자바 스크립트 객체에 속성이라고합니다.
재산 | 값 |
---|---|
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 = 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
»그것을 자신을 시도