app开发定制Object.defineproperty方法(详解)

Object.defineproperty app开发定制的作用就是直接在一个app开发定制对象上定义一个新属性,app开发定制或者修改一个已经存在的属性

Object.definepropertyapp开发定制可以接收三个参数

Object.defineproperty(obj, prop, desc)

obj :  第一个参数就是要在哪个对象身上添加或者修改属性

prop : 第二个参数就是添加或修改的属性名

desc : 配置项,一般是一个对象

来一个简单的例子

  1. let person = {
  2. name:"码农",
  3. age: 18
  4. }
  5. Object.defineProperty(person,'sex',{
  6. value:"男"
  7. })
  8. console.log(person)

 这不就是添加了

第三个参数里面还有6个配置控住属性

  1. writable: 是否可重写
  2. value: 当前值
  3. get: 读取时内部调用的函数
  4. set: 写入时内部调用的函数
  5. enumerable: 是否可以遍历
  6. configurable: 是否可再次修改配置项
  1. let person = {
  2. name:"码农",
  3. age: 18
  4. }
  5. Object.defineProperty(person,'sex',{
  6. value:"男", //设置属性值
  7. enumerable:true, //控制属性是否可以枚举,默认值是false
  8. writable:true, //控制属性是否可以被修改,默认值是false
  9. configurable:true //控制属性是否可以被删除,默认值是false
  10. })
  11. console.log(person)

 

  • writable:true           控制属性是否可以被修改,控制台也看的当为TRUE的时候属性值可以被修改
  • configurable:true      控制属性是否可以被删除
  • enumerable:true      控制属性是否可以枚举,true的话简单的说就是可以遍历获取该值

还有最重要的两个属性 set和get(即存取器描述:定义属性如何被存取),这两个属性是干嘛的?

注意:当使用了getter或setter方法,不允许使用writable和value这两个属性(如果使用,会直接报错滴)

  get 是获取值的时候的方法,类型为 function ,获取值的时候会被调用,不设置时为undefined

  set 是设置值的时候的方法,类型为 function ,设置值的时候会被调用,undefined

  get或set不是必须成对出现,任写其一就可以

代码来看看
 

  1. let number = 18
  2. let person = {
  3. name:'码农',
  4. sex:'男',
  5. }
  6. Object.defineProperty(person,'age',{
  7. //当有人读取person的age属性时,get函数(getter)就会被调用,且返回值就是age的值
  8. get(){
  9. console.log('有人读取age属性了')
  10. return number
  11. },
  12. //当有人修改person的age属性时,set函数(setter)就会被调用,且会收到修改的具体值
  13. set(value){
  14. console.log('有人修改了age属性,且值是',value)
  15. number = value
  16. }
  17. })
  18. console.log(person)

 

get:当有人读取person的age属性时,(getter)就会被调用,且返回值就是age的值

set:当有人修改person的age属性时,set函数(setter)就会被调用,且会收到修改的具体值

可以实现一个数据的联动效果

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发