当前位置: 首页 > news >正文

网站建设 提成网站动态和静态的区别

网站建设 提成,网站动态和静态的区别,济南软件开发公司,黑马程序员pythonObject.defineProperty()是一个监听对象属性变化的方法。一般情况下我们是不会直接使用的,或者说我们遇到的场景还没有这么高级。 最有名的例子就是Vue2的响应式实现,就是通过这个方法来实现的。 用起来不难,就是个API,只是用的…

Object.defineProperty()是一个监听对象属性变化的方法。一般情况下我们是不会直接使用的,或者说我们遇到的场景还没有这么高级。

最有名的例子就是Vue2的响应式实现,就是通过这个方法来实现的。

用起来不难,就是个API,只是用的比较少或者实现的功能都看起来很吊的样子,所以显得很高级。其实也就那样。

定义

Object.defineProperty() 静态方法会直接在一个对象上定义一个新属性,或修改其现有属性,并返回此对象。

定义新属性

运行下面的代码可以观察输出。

const obj1={}
Object.defineProperty(obj1,"property1",{value:1
})
console.log(obj1)//输出{}
console.log(obj1.property1)//输出1

obj1.property1输出1,这是符合我们的预期的。但obj1却输出{},我们期待的应该是{property1:1}。这就非常的奇怪了。明明obj1.property1可以输出property1的值,但输出obj1对象的时候却是空对象。

这就是Object.defineProperty()高级的一个地方。实际上,我们可以通过enumerable这个选项来控制属性是否对用户可见。

const obj1={}
Object.defineProperty(obj1,"property1",{value:1,enumerable:true
})
console.log(obj1)//输出{property1:1}
console.log(obj1.property1)//输出1

修改后,obj1的输出值就是{property1:1}。实际上我们利用defineProperty控制了属性的可见性。一般都会让用户可见。

数据描述符和访问器描述符

数据描述符指的是value和writable属性。访问器描述符指的get和set函数。两者是互斥的。

数据描述符

value的值就是属性的值。是可以读写的通过writable来控制的。

const obj1={}
Object.defineProperty(obj1,"property1",{value:1,writable:true,
})
obj1.property1=10
console.log(obj1.property1)//writable为false的时候,输出1,writable为true的时候,输出10,

writable为false的时候,obj1.property1=10并不会成功赋值。obj1.property1的值还是输出1,并不会报错。writable为true的时候,输出10,赋值成功。

访问器描述符

访问描述符是另一套读写数据的方式。不能够在get和set方法里面调用value,因为数据描述符和访问器描述符是互斥的。

const obj1 = {}
let property1Value = 1//必须自己定义一个变量来设置属性值
Object.defineProperty(obj1, "property1", {enumerable: true,get() {console.log("get:")return property1Value},set(newValue) {property1Value = newValue}
})
property1Value = 10
console.log(obj1)//输出{ property1: [Getter/Setter] }
console.log(obj1.property1)//输出10

在enumerable: true的情况下,obj1输出{ property1: [Getter/Setter] },就是长这样。enumerable: false的情况下,输出{}。

数据描述符和访问器描述符的主要区别

两者都是可以获取和修改属性值的。主要区别就是能不能监听到值的获取或者改变,也就是被Vue等控件玩出花的所谓响应式

1.不需要监听值的改变用数据描述符就行了,自带value值,没什么操作性。
2.需要监听值的改变就要用访问器描述符了。需要自己定义属性值的变量。读取的逻辑都需要自己实现,更灵活也更加强大复杂。

http://www.yayakq.cn/news/112294/

相关文章:

  • asp网站设为首页代码爱站关键词挖掘
  • 深圳拼团网站建设平面设计在哪里学
  • 做美缝在哪个网站接单垫江网站建设报价
  • 湛江网站建设公司做个有用网站
  • 网站定制联通卡google 谷歌
  • 深圳做企业网站的公司推荐服务器上的php4.0网站连接sql2005服务器连接不上
  • 校园网站建设管理工作制度玩家自助充值网站建设
  • 网站开发系统规划四川省住房和城乡建设厅官网证件查询
  • 网站建设中素材蚌埠专业制作网站的公司
  • 建设部资质上报系统网站沧州网站建设推广
  • 北京海淀网站制作公司九江建网站的公司
  • 密云区社区建设网站郑州信息网首页
  • 网站后台什么语宁波seo网络推广公司
  • 网站开发方向学啥网站建设贵
  • 做网站需要哪类商标做怎样的企业网站
  • 怎么注册网站个人项目进度管理软件app
  • 网站标题用空格 逗号影响seo个人网站毕业设计作品
  • 申请中网可信网站阳江房产网春天尚院
  • 网站的后台怎么做调查问卷洛阳霞光科技专业网站制作
  • 网站建设4038gzs做物流的网站有哪些内容
  • 品牌网站建设十小蝌蚪html5做网站导航
  • 带端口的服务器怎么做网站欧米茄女士手表网站
  • 做培训网站哪家好漂亮网站
  • 最好的科技网站建设网站jsp充值和体现系统怎么做
  • 深圳建站推广公司网站关键词怎么做上首页
  • 推广做网站多少钱域名连接到网站吗
  • 兴义网站开发公司软件平台公司
  • 微信网站模块wordpress文档内容页
  • 网站开发提高加载速度网页制作实训总结800字
  • 码云可以做博客网站吗新民电商网站建设价格咨询