자바스크립트에는 함수 이름이 매우 길어서 사용 시 혼란을 야기할 수 있으므로 정리하여 인상을 깊게 하고자 합니다.
①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
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); // 2
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()를 사용하면 인스턴스 속성에 액세스하고 있는지 쉽게 알 수 있습니다. 여전히 프로토타입 속성입니다.