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

网站建设欧美风格网站建设中 怎么办

网站建设欧美风格,网站建设中 怎么办,常州百度公司,微信红包封面开放平台背景:Reflect 为了操作对象而提供的新Api 和 Proxy对象一样 特点 将object 对象的一些明显属于语言内部的方法,放到Reflect 上处理;修改某些object返回的异常结果,让其变得更合理;让object操作都变成函数行为&#xf…

背景:Reflect 为了操作对象而提供的新ApiProxy对象一样

特点

  1. object 对象的一些明显属于语言内部的方法,放到Reflect 上处理;
  2. 修改某些object返回的异常结果,让其变得更合理;
  3. object操作都变成函数行为;
  4. reflect对象上的方法与proxy对象的方法一一对应,只要是proxy上的方法,就能在Reflect对象上找到对应的方法;
 console.log('assign' in Object) // object使用命令式行为去操作
​console.log(Reflect.has(Object,'assign'))  // Object使用函数的行为去操作

方法

  1. Reflect.get(target,name,receiver)方法 获取target对象上的name的value值

  2. Reflect.set(target,name,value,receiver)方法 设置target对象上的name的value值,并且this修改receiver重新绑定

  3. Reflect.has(obj,name)方法 对象上面是否存在某个属性

  4. Reflect.deleteProperty(obj,name)方法 删除对象上某个属性

上述方法中第一个参数不是对象的话,会报错

1:使用Reflect.get()方法

语法:Reflect.get(target,name,receiver)

接收三个字段

  • target:目标对象

  • name:属性名

  • receiver: this绑定的对象 接收对象

 let myObject = {
​foo: 1,
​bar: 2,
​get baz () {
​
•    return this.foo + this.bar
​}
​}
​console.log(Reflect.get(myObject,'foo')) // 1
​console.log(Reflect.get(myObject,'bar')) // 2
​console.log(Reflect.get(myObject,'baz')) // 3

1.1 使用receiver来指定数据

 let myObject1 = {
​foot: 1,
​bar: 2,
​get boo () {
​
•    return this.foot + this.bar
​}
​}
​
​
​let myReceiver = {
​foot: 2,
​bar: 4,
​}

name 在有get的情况下,则读取函数的this绑定receiver (this指向发生了改变)

 console.log('访问',myObject1.boo) // 3
​console.log('访问2',Reflect.get(myObject1,'boo',myReceiver)) // 6

tips: Reflect.get()的第一个参数必须是一个对象,否则会报错

2:使用Reflect.set()方法

通过Reflect.set方法设置target的name属性等于value

语法:Reflect.set(target,name,value,receiver)

接收四个字段

  • target:目标对象

  • name:属性名

  • value:

  • receiver: this绑定的对象 接收对象
  let myObject2 = {
​foot: 1,
​set bar (value) {
​
•    return this.foot = value
​}
​}console.log('读取原有属性的值:',myObject2.foot) // 1
​Reflect.set(myObject2,'foot', 2)
​console.log('Reflect.set修改原有属性的值:',myObject2.foot)// 2
​Reflect.set(myObject2,'bar', 6)
​console.log('通过Reflect.set修改原有属性的值:',myObject2.foot) // 6

如果name属性设置了赋值函数,则赋值函数的this绑定receiver

  let myObject3 = {
​foo: 3,
​set bar (value) {
​
•    return this.foo = value
​}
​}
​
​
​let receiverMyObject = {
​foo: 0,
​}

通过Reflect.set()修改foo的值

Reflect.set(myObject3,'bar',2,receiverMyObject)
​
console.log('target原有的值',myObject3.foo)  // 3
​
console.log('this指向的receiver发生了变化:',receiverMyObject.foo) // 2

3:使用Reflect.has()方法

通过 Reflect.has()方法查看属性是否存在,返回boolean值

let obj1 = { a: 1 }

旧方法

console.log('a' in obj1) // true 

使用 Reflect.has()方法

语法:Reflect.has(obj,name)

console.log(Reflect.has(obj1,'a')) // true

4:删除属性操作

语法:Reflect.deleteProperty(obj,name)

 let obj2 = { title: '标题信息', name: '名称信息' }console.log('对象原有内容:', obj2) // {title: '标题信息', name: '名称信息'}

旧方法

delete obj2.title
console.log('使用旧方法删除的值:', obj2) // {name: '名称信息'}

使用Reflect.deleteProperty()进行删除

Reflect.deleteProperty(obj2,'name')
console.log('使用Reflect.deleteProperty()方法删除后的:', obj2) // { }

笔记,后续持续更新,敬请期待~

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

相关文章:

  • 怎样建立自己的个人网站泰安达创信息科技有限公司
  • 学校网站建设合同ui设计优秀案例
  • 沈阳网站seo优化哪家好做网页流程
  • 深圳市住房和建设局网站住房建设银行网站不能登录密码
  • 顺德网站建设报价有限责任公司是什么意思
  • 公司内网网站建设建设域名网站
  • 华容网站定制什么是虚拟主机
  • 网站建设昆明免费营销型网站建设
  • 可以做试卷的网站英语wordpress中文说明书
  • 网站如何做中英文切换wordpress退出代码
  • wordpress适合企业网站模板石岩附近网站建设公司
  • 如何利用网站开发客户平台公司是干什么的
  • 岳阳企业网站定制开发网站视听内容建设
  • wamp可以做视频网站吗本地云主机搭建wordpress
  • vue做的博客网站在线搜索资源
  • 网站用哪个软件做兴仁县城乡建设局网站
  • 网站原型设计流程刚刚中国宣布重大消息
  • 专业做视频的网站有哪些内容做镜像网站违法
  • 深圳市城乡住房和建设局网站网站建设用几级域名合适
  • 亚马逊电商网站新渝网
  • 史志网站建设必要性手机端关键词排名免费软件
  • 西安在线网站wordpress 无法登录界面
  • 域名网站计划怎么写少儿编程课是学什么的
  • 网站系统建设需要什么资质吗网站对于一个企业的优势
  • 教育培训网站设计vivo应用商店
  • 产品营销软文seo网站布局
  • 如何编写网站建设销售的心得爱奇艺做任务领vip网站
  • 手机网站首页新闻模板uugaicomlogo免费设计网站
  • 云浮住房和城乡建设部官方网站wordpress 导航站模板下载地址
  • 分类信息网站织梦模板江门网页定制