ES5의 객체 속성은 '데이터 속성'과 '접속자 속성'의 두 가지 유형으로 나눌 수 있습니다.
데이터 속성은 일반적으로 데이터 값을 저장하는 데 사용됩니다. 접근자 속성은 설정/가져오기 작업에 해당하며 데이터 값을 직접 저장할 수 없습니다.
데이터 속성 특성: 값, 쓰기 가능, 열거 가능, 구성 가능.
설명: 구성 가능: true/false, 삭제를 통해 속성을 삭제할 수 있는지 여부, 속성의 특성을 수정할 수 있는지 여부, 속성을 접근자 속성으로 수정할 수 있는지 여부, 기본값은 false입니다. : true/false, 전달 가능 여부 for in 루프 반환, 기본값은 false입니다.
writable: true/false, 속성 값을 수정할 수 있는지 여부, 기본값은 false입니다. 속성 값은 설정되어 있으며 기본값은 정의되지 않습니다.
접속자 속성 특성:
set, get, enumerable, configurable. 설명: 구성 가능: true/false, 삭제를 통해 속성을 삭제할 수 있는지 여부, 속성의 특성을 수정할 수 있는지 여부, 속성을 접근자 속성으로 수정할 수 있는지 여부, 기본값은 false입니다. : true/false, 전달 가능 여부 for in 루프 반환, 기본값은 false입니다.
set: 함수, 속성 값을 읽을 때 호출되는 함수 get: 함수, 속성 값을 수정할 때 호출되는 함수; .
객체에 속성을 추가하거나 기존 속성의 속성을 수정하려면 Object.defineProperty() 또는 Object.defineproperties() 메서드를 사용하세요.
Object.defineProperty(object, propertyname, descriptor):
매개변수 설명: 객체: 또는 속성 개체를 수정해야 합니다.
propertyname: 속성 이름, 문자열 형식
descriptor: 속성 설명, 데이터 속성 또는 접근자 속성의 특성을 설정합니다.
인스턴스 분석:
데이터 속성:
var emp = { name:'tom' }; Object.defineProperty(emp,'name',{ writable:false }); emp.name = 'jery'; console.log(emp.name);//输出tom,因为已经设置了writable为false Object.defineProperty(emp,'age',{ configurable:false, writable:true, value:22 }); console.log(emp.age);//输出22,因为设置了value为22 emp.age = 25; console.log(emp.age);//输出25,设置了writable为true delete emp.age; console.log(emp.age);//输出25,设置了configurable为false,此属性删除不了
접속자 속성:
var emp ={
_name:'tom',
_age:20
};
Object.defineProperty(emp,'name',{
get:function(){
return this._name;
}
});
console.log(emp.name);//输出tom,由get方法返回_name的值
emp.name = 'jery';
console.log(emp.name);//输出tom,没有set方法,修改不了_name的值
Object.defineProperty(emp,'age',{
configurable:true,
get:function(){
return this._age;
}
set:function(age){
this._age = age;
}
});
emp.age = 25;
console.log(emp.age)//输出25,emp.age=25是使用set方法将25赋值给_age,emp.age是使用get方法将_age的读取出来
delete emp.age;
console.log(emp.age);//输出undefined,configurable为true,可以使用delete方法将emp.age属性删除
참고: 접근자 속성이 유용할 수 있습니다. 보호 효과는 다음과 같습니다. get 메소드만 있으면 읽을 수만 있고 쓸 수는 없고, 반대로 set만 있으면 쓸 수만 있고 읽을 수는 없습니다
위 내용은 Javascript 객체의 데이터 속성 및 접근자 속성 인스턴스에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!