자바스크립트에는 함수 이름이 매우 길어서 사용 시 혼란을 야기할 수 있으므로 정리하여 인상을 깊게 하고자 합니다.
①Object.getOwnPropertyDescriptor - 개체의 특정 속성에 대한 속성 설명자 읽기(값/쓰기 가능/열거 가능/구성 가능)
이 메서드는 두 가지 매개 변수를 허용합니다.(속성이 있는 개체) , 해당 설명자의 속성 이름을 읽으려면) 반환 값은 개체입니다.
var o = Object.getOwnPropertyDescriptor({x : 1}, 'x'); //{value:1, writable:true, enumerable:true, configurable:true}alert(o); // [object Object]이 방법은 세 가지 매개 변수(수정할 개체, 생성 또는 수정할 속성, 속성 설명자 개체)를 허용합니다.
var o = Object.getOwnPropertyDescriptor({}, 'toString');<br> alert(o); //undefined위는 빈 객체에 두 개의 데이터 속성(_year 및 edition)과 접근자 속성(연도)을 정의합니다. 여기의 속성은 모두 동시에 생성됩니다. ④isPrototypeOf - 객체와 프로토타입 간의 관계를 결정합니다.
var o = {}; Object.defineProperty(o, 'x', { value : 1, writable : true, enumerable : false, configurable : true }); alert(o.x); // 1 Object.defineProperty(o, 'x', {writable : false}); o.x = 2; //不可行,不会报错,但不会修改, o.x = 1; Object.defineProperty(o, 'x', {value : 2}); alert(o.x); // 2friend 객체 내부에 Person.prototype에 대한 포인터가 있으므로 true가 반환됩니다.
Object.defineProperties({}, { _year : { value : 2016, writable : true, enumerable : true, configurable : true }, edition : { value : 1 }, year : { get : function(){ return this._year; }, set : function(newValue){ if(newValue > 2004){ this._year = newValue; this.edition += newValue - 2004; } } } });
⑤Object.getPrototypeOf - 객체의 프로토타입을 편리하게 가져옵니다.
IE9+에서 지원되는 ES5의 새로운 메서드입니다.function Person(){} var friend = new Person(); alert(Person.prototype.isPrototypeOf(friend)); //true
⑥hasOwnProperty - 속성이 인스턴스 또는 프로토타입에 존재하는지 감지
hasOwnProperty()를 사용하면 인스턴스 속성에 액세스하고 있는지 쉽게 알 수 있습니다. 여전히 프로토타입 속성입니다.