JS高级--Object数据属性和访问器属性

嗨!我是前端小M~~

Obj数据属性和访问器属性

(可以对对象中常规的有范围的数据进行判断,比如年龄(age)分数(score))

object对象的键值有 :

  • 四个属性:(【value,writable】数据描述符,【configurable,enumerable】访问器属性)
  • 两个方法:(get(){}获取 set(){}设置(*不能与数据描述符同时存在会报错Invalid property descriptor.Cannot both specify accessors and a value or writable attribute, #<Object>at Function.defineProperty)
    let obj={
    name:"zhangsan",
    age:18
    }
    获取对象某个键的属性 1. get 获取 Own自己的 Property属性 Descriptor描述符 let result = Object.getOwnPropertyDescriptor(obj,"name"); console.log(result); ----打印出的默认属性--> value: "zhangsan" //key对应的值 writable: true // 可被修改==》false 设置的键的值不可被外界修改 configurable: true //可配置性 可被删除 ==》false 设置的键的值不可被外界删除 enumerable: true //可枚举性 可被遍历==》false 设置的键的值不可被外界遍历 2.define 定义 Property 属性 const obj = { name: "zhangsan", _age:28 , //模仿静态语言私有属性 _score: 60 } Object.defineProperty(obj, 'score', { // value: 18, //get set 与 value writeable不可同时存在* // writable: true, configurable: true, enumerable: true, get() { //访问对象属性时自动被调用 obj.age return this._score; console.log(this); }, set(value) { //设置该属性时自动被调用 obj.age = 10 if (value < 0 || value > 100) { console.log("请输入正确值"); return this._score; }else{ console.log('输入成功'); this._score = value; } } })

      

posted @ 2020-12-13 19:58  瓜豆のO泡  阅读(275)  评论(0)    收藏  举报