객체를 만듭니다
• 직접 객체 측정
var o = {foo : "bar"}• 생성자 기능
var o = new Object ();
• 프로토 타입 상속
var p = object.create (o);
클래스 상속
JavaScript 객체에는 고유 한 속성과 상속 된 속성이 있습니다.
• Object O의 속성 x를 쿼리 할 때 먼저 O의 속성 x를 찾으십시오. 찾을 수없는 경우 x의 프로토 타입 개체에서 x 또는 프로토 타입이 Null이 발견 될 때까지 X 속성을 찾으십시오.
• 오브젝트 O의 x 속성에 값을 할당 할 때, 이미 x에 x가있는 경우 x의 값을 변경하십시오. o에 속성 x가 없으면 o에 대한 x 속성을 만들고 값을 할당하십시오.
• 즉, 프로토 타입 체인은 쿼리시에만 작동합니다.
var o = {x : 1}; function p () {this.y = 2; } p.prototype = o; var t = new p (); Console.log (t); console.log ( 'x'in t); // true console.log (t.hasownproperty ( 'x')); // false객체에 속성이 있는지 여부를 결정하기 위해 사용하거나 hasownproperty를 사용할 수 있습니다.
객체 속성
• 객체 속성을 통해 전송합니다
객체의 속성을 가로 지르기 위해 사용할 수 있습니다.
for..in을 사용할 때 프로토 타입 체인의 특성을 반복합니다. 횡단 순서는 폭이 우선 순위에 맞는 것입니다
따라서 HasownProperty를 사용하면 객체 자체의 속성인지 여부를 결정할 수 있습니다.
• 객체 속성의 속성
Object.GetOgnPropertyDescriptor ()를 사용하여 객체 별 속성에 대한 설명자를 얻으십시오.
쓸 수있는 것은 객체 속성이 쓸 수 있는지 여부를 의미합니다
예를 들어
var o = {foo : 'bar'} object.defineProperty (o, "foo", {writable : false}); o.foo = 'world'; console.log (o.foo); // 여전히 출력 막대열거 가능한 것은 객체 속성이 열거 될 수 있는지 여부를 의미합니다
예를 들어
배열의 길이 및 기타 속성을 열거 할 수있는 것은 거짓이므로
for (배열의 p) {console.log (p);}출력이 없습니다
구성 가능한 것은 특성의 구성 가능성 및 열거를 수정할 수 있는지 여부를 의미합니다.
이러한 구성 속성은 Object.DefineProperties를 사용하여 정의 할 수 있습니다.
Object.DefineProperty (o, "foo", {writable : false});
객체 속성을 얻는 방법을 의미합니다
세트는 객체 속성을 설정하는 메소드를 나타냅니다
예
var book = {_year : 2004, edition : 1}; object.defineProperty (책, "연도", {get : function () {console.log ( 'get year'); return this._year;}, set : function (newValue) {newValue> if (2004) {this._year) {this._year; += newValue -2004;}}); book.year = 2005; // 콘솔 출력 세트 '연도'세트 (book.year);객체 방법
Tostring은 물체를 문자열로 변환합니다. 기본 변환은 [Object Object]와 같은 것이므로 JSON 형식으로 변환 해야하는 경우 json.stringify를 사용할 수 있습니다.
객체를 다른 유형으로 변환 할 때 가치를 사용해야합니다. 마찬가지로 기본 변환에 대해 말할 가치가 없습니다.
실행 가능한 개체
다음 방법으로 실행 가능 객체를 만들 수 있습니다.
함수 바 (o) {var f = function () {return "Hello World!"; } o .__ proto__ = f .__ proto__; f .__ proto__ = O; return f;} var o = {x : 5}; var foo = bar (o); console.log (foo ()); console.log (foo.x); console.log (typeof foo); // function객체 (프로토 타입 체인 포함) 또는 직접 호출하는 기능으로 사용할 수 있습니다.