>웹 프론트엔드 >JS 튜토리얼 >javascript_javascript 스킬의 Object 사용에 대한 자세한 설명

javascript_javascript 스킬의 Object 사용에 대한 자세한 설명

WBOY
WBOY원래의
2016-05-16 16:17:561165검색

코드 복사 코드는 다음과 같습니다.

forEach(o) 함수{
var html="";
for(var i in o){
html = i "=" o[i] " ";
}
console.log(html);
console.log(o);
}

//1
//Object.create(프로토)
//Object.create(proto,descriptors)
//지정된 프로토타입과 속성을 사용하여 객체 생성
//매개변수:
//proto: 새로 ​​생성된 객체의 프로토타입, null일 수 있음
//descriptors: 속성 이름을 속성 설명자에 매핑하는 선택적 개체
//proto에서 상속되고 설명자의 속성을 갖는 새로 생성된 개체를 반환합니다.

코드 복사 코드는 다음과 같습니다.

var obj = Object.create({x:1,y:2},{
z:{값:3, 쓰기 가능:true, 열거 가능:true, 구성 가능:true}
});
forEach(obj)
obj.z=5
console.log(obj)
console.log("============================================ = ========")

//2
//Object.defineProperties(o,descriptors)
//객체의 여러 속성을 생성하거나 구성합니다
//매개변수:
//o: 속성을 생성하거나 구성할 개체
//descriptors: 속성 이름을 속성 설명자에 매핑하는 개체
//o 객체 반환

코드 복사 코드는 다음과 같습니다.

Object.defineProperties(obj,{
a:{값:"a", 쓰기 가능:false, 열거 가능:true, 구성 가능:true},
b:{값:"b", 쓰기 가능:false, 열거 가능:true, 구성 가능:true}
})
forEach(obj);
console.log("============================================ = ========")

//3
//Object.defineProperty(o,name,desc)
//객체의 속성을 생성하거나 구성합니다
//매개변수:
//o: 속성이 생성되거나 구성될 개체
//name: 생성 또는 구성할 속성의 이름
//desc: 생성할 새 속성이나 기존 속성의 수정을 설명하는 속성 설명자 개체
//o 객체 반환

코드 복사 코드는 다음과 같습니다.

Object.defineProperty(obj,"c",{값:"c",writable:false,enumerable:false,configurable:true})
forEach(obj);
console.log("============================================ = ========")

//4
//Object.freeze(o)
//객체를 불변으로 설정하고 상속된 속성에 영향을 주지 않습니다
//매개변수:
//o: 동결할 객체
//참|거짓 반환

코드 복사 코드는 다음과 같습니다.

var p = {x:1,y:2}
Object.freeze(p);
p.x =2;
console.log(p);
console.log(Object.isFrozen(p)) //true, 한번 고정되면 고정 해제할 수 없습니다
console.log("============================================ = ========")

//5
//Object.getOwnPropertyDescriptor(o,name)
//매개변수:
//o: 객체
//name: 쿼리할 속성 이름
//속성 특성 조회
//객체의 지정된 속성에 대한 속성 설명자 객체를 반환합니다. 지정된 속성이 없으면 정의되지 않은 상태를 반환합니다.
/*
속성 설명자는 객체의 특성을 설명하는 일반적인 JavaScript 객체입니다. JavaScript 속성에는 두 가지 유형이 있습니다. 데이터 속성에는 값과 세 가지 속성(열거 가능,
)이 있습니다. 쓰기 가능하고 구성 가능합니다. 접근자 속성에는 getter 및/또는 setter 메서드와 열거 가능성이 있습니다.
데이터 속성 설명:
{
값: 임의의 자바스크립트 값,
쓰기 가능: true|false,
열거 가능: true|false,
구성 가능:참|거짓
}
접근자 속성 설명:
{
get: 함수 또는 정의되지 않음: 속성 값 대체
설정: 함수 또는 정의되지 않음: 쓰기 가능성 대체
열거 가능:true|false,
구성 가능:참|거짓
}
*/

코드 복사 코드는 다음과 같습니다.

var o5 = Object.getOwnPropertyDescriptor(obj,"c");
console.log(o5);
forEach(o5);
console.log("============================================ = ========")

//6
//Object.getOwnPropertyNames(o)
//상속되지 않은 속성의 이름을 반환합니다
//매개변수:
//o: 객체
//열거 불가능한 속성을 포함하여 o의 상속되지 않은 모든 속성을 포함하는 이름을 반환합니다. {열거 가능:false}

코드 복사 코드는 다음과 같습니다.

var o6 = Object.getOwnPropertyNames(obj);
console.log(o6);
console.log("============================================ = ========")

//7
//Object.getPrototypeOf(o)
//매개변수:
//o: 객체
//객체의 프로토타입을 반환

코드 복사 코드는 다음과 같습니다.

var o7 =Object.getPrototypeOf(obj);
console.log(o7);
console.log("============================================ = ========")

//8
//Object.hasOwnProperty(propname);
//매개변수:
//propname은 객체
의 속성 이름을 포함하는 문자열입니다. //속성 상속 여부 확인
//참|거짓 반환

코드 복사 코드는 다음과 같습니다.

console.log(obj.hasOwnProperty("x")) //=>false
console.log(obj.hasOwnProperty("z")) //=>true
console.log("============================================ = ========")

//9
//Object.isExtensible(o);
//객체에 새 속성을 추가할 수 있는지 확인
//매개변수:
//o: 확장성을 확인할 개체
//Return은 true로 추가될 수 있음|false로 추가될 수 없음
//설명: 모든 객체는 생성 시 Object.preventExtensions(o) Object.seal(o) 또는 Object.freeze(o)에 전달될 때까지 확장 가능합니다.

코드 복사 코드는 다음과 같습니다.

console.log(Object.isExtensible(obj)) // =>true
//Object.preventExtensions(obj)//확장 불가능으로 설정
//console.log(Object.isExtensible(obj)) //=>false
console.log("============================================ = ========")

//10
//Object.isFrozen(o)
//객체가 불변인지 확인
//매개변수:
//o: 확인할 객체
//o가 동결되어 변경되지 않으면 true이고, 그렇지 않으면 false입니다.

코드 복사 코드는 다음과 같습니다.
console.log("============================================ = ========")

//11

//object.isPrototypeOf(o)
//현재 객체가 다른 객체의 프로토타입인지 확인
//매개변수:
//o: 모든 객체
//객체가 o의 프로토타입이면 true입니다. o가 객체가 아니거나 객체가 o의 프로토타입이 아니면 false입니다.

코드 복사 코드는 다음과 같습니다.
var o = new Object();
Object.prototype.isPrototypeOf(o) // true
Array.prototype.isPrototypeOf([1,2]) //true;
Object.prototype.isPrototypeOf(Function.prototype) //true
console.log("============================================ = ========")

//12

//Object.isSealed(o)
//객체의 속성을 추가하거나 삭제할 수 있는지 확인
//매개변수:
//o: 확인할 객체
//o가 닫혀 있으면 true, 그렇지 않으면 false입니다.
// 새(상속되지 않은) 속성을 개체에 추가할 수 없고 기존(상속되지 않은) 속성을 제거할 수 없으면 개체가 닫힙니다.
//객체를 닫는 데 일반적으로 사용되는 방법은 Object.seal(o) 또는 Object.freeze(o)입니다

console.log("========================================= ===========")

//13

//object.keys(o)
//열거 가능한 무료 속성 이름을 반환합니다
//매개변수:
//o: 객체

코드 복사 코드는 다음과 같습니다.
console.log(Object.keys({x:1,y:2}) ) //=>[x,y]
console.log("============================================ = ========")

//14
//Object.preventExtensions(o)
//객체에 새 속성 추가 금지
//매개변수:
// o: 설정할 확장 가능 객체
//비확장형으로 설정하면 절대 확장형으로 변경할 수 없습니다

console.log("========================================= ===========")


//15
//object.propertyIsEnumerable(propname)
//for/in 루프에서 특정 속성이 표시되는지 확인
//매개변수
//propname: 객체
의 지정된 속성 이름을 포함하는 문자열 //객체에 propname이라는 상속되지 않은 속성이 있고 해당 속성이 열거 가능한 경우 true를 반환합니다.

코드 복사 코드는 다음과 같습니다.

var o15 = 새로운 객체();
o15.x = 15;
o15.propertyIsEnumerable("x"); //참; o15.propertyIsEnumerable("y"); //false;
o15.propertyIsEnumerable("toString"); //false;
console.log("============================================ = ========")

//16

//Object.seal(o)
//객체의 속성 추가 또는 제거 방지
//매개변수
//o: 닫을 객체
//닫힌 매개변수 객체 반환 o

//17

//Object.toLocaleString()
//객체의 현지화된 문자열 식별자를 반환합니다
//Object 클래스에서 제공하는 기본 toLocaleString() 메서드는 단순히 toString() 메서드를 호출합니다.
//그러나 다른 클래스(Array, Date, Number 등)는 각각 이 메서드의 자체 버전을 정의한다는 점에 유의하세요. 현지화된 문자열 변환을 수행하는 데 사용됩니다. 자신만의 클래스를 정의할 때 이 메서드를 재정의해야 할 수도 있습니다.

//18

//object.toString()
//객체의 문자열 표현 정의
//자바스크립트 프로그램에서 toString() 메소드는 일반적으로 자주 호출되지 않습니다. 일반적으로 이 메서드는 객체에 정의되어 있으며 객체를 문자열로 변환해야 할 때 시스템이 자동으로 호출합니다.

//19

//Object.valueOf()
//주어진 객체의 원래 값
//지정된 객체와 연관된 원래 값을 반환합니다. 해당 값이 존재하면 변경된 객체와 연관된 값이 없으면 객체 자체를 반환합니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.