对象及属性

1、数据属性
(1)configurable: 能否通过delete删除属性从而重新定义属性,能否修改属性的特性。
(2)enumrable: 能否通过for-in循环返回属性
(3)writable: 能否修改属性的值
(4)value:该属性的数据值,默认undefined

2、访问器属性
(1)configurable: 能否通过delete删除属性从而重新定义属性,能否修改属性的特性。
(2)enumrable: 能否通过for-in循环返回属性
(3)get: 在读取属性时调用的函数
(4)set:在写入属性时调用的函数


3、定义新属性

(1)Object.defineProperty(属性所在对象,属性的名字,描述该属性的特性) : 定义一个新属性

let person={};
Object.defineProperty(person, "name", {
    writable: true,
    value: 'haha'
    }
);
alert(person.name); //haha
person.name = 'liming';
alert(person.name) //haha

(2)Object.defineProperties(属性所在对象,属性的名字+特性的对象) : 定义多个新属性

let book = {};
Object.defineProperties(book, {
    _year: {
        writable: true,
        value: 2004
    },
    get: function() {
        console.log(this._year)
    }
}

4、读取属性的特性

Object.getOwnPropertyDescriptor():可以取的给定属性的描述符

let book = {};
Object.defineProperties(book, {
    _year: {
        writable: true,
        value: 2004
    },
    get: function() {
        console.log(this._year)
    }
}

let des = Object.getOwnPropertyDescriptor(book, "_year");
des.value; // 2004

⚠️ 注意:

对象及属性_第1张图片

 

 

 

 

你可能感兴趣的:(JavaScript,前端知识,configurable,enumrable,defineProperty,对象属性)