//1
//Object.create(프로토)
//Object.create(proto,descriptors)
//지정된 프로토타입과 속성을 사용하여 객체 생성
//매개변수:
//proto: 새로 생성된 객체의 프로토타입, null일 수 있음
//descriptors: 속성 이름을 속성 설명자에 매핑하는 선택적 개체
//proto에서 상속되고 설명자의 속성을 갖는 새로 생성된 개체를 반환합니다.
//2
//Object.defineProperties(o,descriptors)
//객체의 여러 속성을 생성하거나 구성합니다
//매개변수:
//o: 속성을 생성하거나 구성할 개체
//descriptors: 속성 이름을 속성 설명자에 매핑하는 개체
//o 객체 반환
//3
//Object.defineProperty(o,name,desc)
//객체의 속성을 생성하거나 구성합니다
//매개변수:
//o: 속성이 생성되거나 구성될 개체
//name: 생성 또는 구성할 속성의 이름
//desc: 생성할 새 속성이나 기존 속성의 수정을 설명하는 속성 설명자 개체
//o 객체 반환
//4
//Object.freeze(o)
//객체를 불변으로 설정하고 상속된 속성에 영향을 주지 않습니다
//매개변수:
//o: 동결할 객체
//참|거짓 반환
//5
//Object.getOwnPropertyDescriptor(o,name)
//매개변수:
//o: 객체
//name: 쿼리할 속성 이름
//속성 특성 조회
//객체의 지정된 속성에 대한 속성 설명자 객체를 반환합니다. 지정된 속성이 없으면 정의되지 않은 상태를 반환합니다.
/*
속성 설명자는 객체의 특성을 설명하는 일반적인 JavaScript 객체입니다. JavaScript 속성에는 두 가지 유형이 있습니다. 데이터 속성에는 값과 세 가지 속성(열거 가능,
)이 있습니다.
쓰기 가능하고 구성 가능합니다. 접근자 속성에는 getter 및/또는 setter 메서드와 열거 가능성이 있습니다.
데이터 속성 설명:
{
값: 임의의 자바스크립트 값,
쓰기 가능: true|false,
열거 가능: true|false,
구성 가능:참|거짓
}
접근자 속성 설명:
{
get: 함수 또는 정의되지 않음: 속성 값 대체
설정: 함수 또는 정의되지 않음: 쓰기 가능성 대체
열거 가능:true|false,
구성 가능:참|거짓
}
*/
//6
//Object.getOwnPropertyNames(o)
//상속되지 않은 속성의 이름을 반환합니다
//매개변수:
//o: 객체
//열거 불가능한 속성을 포함하여 o의 상속되지 않은 모든 속성을 포함하는 이름을 반환합니다. {열거 가능:false}
//7
//Object.getPrototypeOf(o)
//매개변수:
//o: 객체
//객체의 프로토타입을 반환
//8
//Object.hasOwnProperty(propname);
//매개변수:
//propname은 객체
의 속성 이름을 포함하는 문자열입니다.
//속성 상속 여부 확인
//참|거짓 반환
//9
//Object.isExtensible(o);
//객체에 새 속성을 추가할 수 있는지 확인
//매개변수:
//o: 확장성을 확인할 개체
//Return은 true로 추가될 수 있음|false로 추가될 수 없음
//설명: 모든 객체는 생성 시 Object.preventExtensions(o) Object.seal(o) 또는 Object.freeze(o)에 전달될 때까지 확장 가능합니다.
//10
//Object.isFrozen(o)
//객체가 불변인지 확인
//매개변수:
//o: 확인할 객체
//o가 동결되어 변경되지 않으면 true이고, 그렇지 않으면 false입니다.
//object.isPrototypeOf(o)
//현재 객체가 다른 객체의 프로토타입인지 확인
//매개변수:
//o: 모든 객체
//객체가 o의 프로토타입이면 true입니다. o가 객체가 아니거나 객체가 o의 프로토타입이 아니면 false입니다.
//Object.isSealed(o)
//객체의 속성을 추가하거나 삭제할 수 있는지 확인
//매개변수:
//o: 확인할 객체
//o가 닫혀 있으면 true, 그렇지 않으면 false입니다.
// 새(상속되지 않은) 속성을 개체에 추가할 수 없고 기존(상속되지 않은) 속성을 제거할 수 없으면 개체가 닫힙니다.
//객체를 닫는 데 일반적으로 사용되는 방법은 Object.seal(o) 또는 Object.freeze(o)입니다
//13
//object.keys(o)
//열거 가능한 무료 속성 이름을 반환합니다
//매개변수:
//o: 객체
//14
//Object.preventExtensions(o)
//객체에 새 속성 추가 금지
//매개변수:
// o: 설정할 확장 가능 객체
//비확장형으로 설정하면 절대 확장형으로 변경할 수 없습니다
console.log("========================================= ===========")
//15
//object.propertyIsEnumerable(propname)
//for/in 루프에서 특정 속성이 표시되는지 확인
//매개변수
//propname: 객체
의 지정된 속성 이름을 포함하는 문자열
//객체에 propname이라는 상속되지 않은 속성이 있고 해당 속성이 열거 가능한 경우 true를 반환합니다.
//Object.seal(o)
//객체의 속성 추가 또는 제거 방지
//매개변수
//o: 닫을 객체
//닫힌 매개변수 객체 반환 o
//Object.toLocaleString()
//객체의 현지화된 문자열 식별자를 반환합니다
//Object 클래스에서 제공하는 기본 toLocaleString() 메서드는 단순히 toString() 메서드를 호출합니다.
//그러나 다른 클래스(Array, Date, Number 등)는 각각 이 메서드의 자체 버전을 정의한다는 점에 유의하세요. 현지화된 문자열 변환을 수행하는 데 사용됩니다. 자신만의 클래스를 정의할 때 이 메서드를 재정의해야 할 수도 있습니다.
//object.toString()
//객체의 문자열 표현 정의
//자바스크립트 프로그램에서 toString() 메소드는 일반적으로 자주 호출되지 않습니다. 일반적으로 이 메서드는 객체에 정의되어 있으며 객체를 문자열로 변환해야 할 때 시스템이 자동으로 호출합니다.
//Object.valueOf()
//주어진 객체의 원래 값
//지정된 객체와 연관된 원래 값을 반환합니다. 해당 값이 존재하면 변경된 객체와 연관된 값이 없으면 객체 자체를 반환합니다.