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

网站开发外包 价格百度seo收录软件

网站开发外包 价格,百度seo收录软件,可以做填字游戏的网站,郴州哪里做网站文章目录 1 Proxy代理1.1 get方法1.2 set方法1.3 has方法1.4 this问题 2 Reflect对象2.1 代替Object的某些方法2.2 修改某些Object方法返回结果2.3 命令式变为函数行为2.4 配合Proxy 1 Proxy代理 Proxy如其名,它的作用是在对象和和对象的属性值之间设置一个代理&am…

文章目录

  • 1 Proxy代理
    • 1.1 get方法
    • 1.2 set方法
    • 1.3 has方法
    • 1.4 this问题
  • 2 Reflect对象
    • 2.1 代替Object的某些方法
    • 2.2 修改某些Object方法返回结果
    • 2.3 命令式变为函数行为
    • 2.4 配合Proxy

1 Proxy代理

Proxy如其名,它的作用是在对象和和对象的属性值之间设置一个代理,获取该对象的值或者设置该对象的值, 以及实例化等等多种操作, 都会被拦截住, 经过这一层我们可以统一处理,我们可以认为它就是“代理器”。

ES6之前:

let obj = {}// let arr = [1,2,3] // push pop
// console.log(box)
Object.defineProperty(obj, "data", { // obj--对象,data--属性get(){console.log("get")return box.innerHTML},set(value){console.log("set",value)// 设置 dombox.innerHTML = value}
})console.log(obj)

1.1 get方法

let target = {}
let proxy = new Proxy(target, {get(target, prop){return target[prop]}
})

1.2 set方法

let target = {}
let proxy = new Proxy(target, {get(target, prop){return target[prop]},set(target, prop, value){if(prop === "data"){box.innerHTML = value}target[prop] = value;}
})

1.3 has方法

has捕获器,拦截对象属性的in操作符的调用,当使用in操作符来检查一个属性是否存在于一个对象时,如果对象是个proxy,has捕获器就会被调用。

let target = {_prop: "内部数据"
}
let proxy = new Proxy(target, {get(target, prop) {return target[prop]},set(target, prop, value) {if (prop === "data") {box.innerHTML = value}target[prop] = value;},has(target, key) {if (key[0] === '_') {return false;}return key in target;}
})

1.4 this问题

let target = new Set()
const proxy = new Proxy(target, {get(target, key) {const value =  target[key]// 遇到Function都手动绑定一下this// 正常调用时,this指向proxy// bind修正后,value方法的this指向target对象if(value instanceof Function) {console.log(`访问${value}方法了`)return value.bind(target)// 不能是call / apply,改变页面加载之后就立即执行,同步代码// bind 不会立即执行原函数,异步代码 }return value}
})
proxy.add(1)

Proxy本质上属于元编程非破坏性数据劫持,在原对象的基础上进行了功能的衍生而又不影响原对象,符合松耦合高内聚的设计理念。

2 Reflect对象

Reflect可以用于获取目标对象的行为,它与Object类似,但是更易读,为操作对象提供了一种更优雅的方式。它的方法与Proxy是对应的。

2.1 代替Object的某些方法

const obj = {
};
Reflect.defineProperty(obj, 'name', {value: 'kerwin',writable: false,configurable:false
});

2.2 修改某些Object方法返回结果

// 老写法
try {Object.defineProperty(target, property, attributes);// success
} catch (e) {// fail
}// 新写法
if(Reflect.defineProperty(target, property, attributes)) {// success
} else {// fail
}

2.3 命令式变为函数行为

const obj = {name:"kerwin"
};
//老写法
console.log("name" in obj) //true
//新写法
console.log(Reflect.has(obj, 'name')) //true//老写法
delete obj.name
//新写法
Reflect.deleteProperty(obj, "name")

2.4 配合Proxy

Reflect.set()和Reflect.get()。

let obj = {name:"kerwin"
}Reflect.set(obj, "age", 100)
console.log(Reflect.get(obj, "name"))
let target = new Set()
const proxy = new Proxy(target, {get(target, key) {const value = Reflect.get(target, key)if (value instanceof Function) {console.log(`访问${value}方法了`)return value.bind(target)}return value},set() { // set(target, key, value)return Reflect.set(...arguments)}
})
proxy.add(1)
let arr = [1, 2, 3]
let proxy = new Proxy(arr, {get(target, key) {console.log('get', key)return Reflect.get(...arguments)},set(target, key, value) {console.log('set', key, value)return Reflect.set(...arguments)}
})
proxy.push(4)
// 能够打印出很多内容
// get push     (寻找 proxy.push 方法)
// get length   (获取当前的 length)
// set 3 4      (设置 proxy[3] = 4)
// set length 4 (设置 proxy.length = 4)

文章转载自:
http://lustihood.c7501.cn
http://sortable.c7501.cn
http://bastille.c7501.cn
http://photics.c7501.cn
http://hydraemic.c7501.cn
http://dehiscence.c7501.cn
http://paymaster.c7501.cn
http://carrying.c7501.cn
http://gregarization.c7501.cn
http://antenumber.c7501.cn
http://askew.c7501.cn
http://terneplate.c7501.cn
http://contriver.c7501.cn
http://myocarditis.c7501.cn
http://hirudinoid.c7501.cn
http://broadcast.c7501.cn
http://typicality.c7501.cn
http://opsonin.c7501.cn
http://eolith.c7501.cn
http://blouson.c7501.cn
http://soubresaut.c7501.cn
http://triplicity.c7501.cn
http://cyprus.c7501.cn
http://ecstasize.c7501.cn
http://begrime.c7501.cn
http://hearting.c7501.cn
http://yolky.c7501.cn
http://callipee.c7501.cn
http://idempotence.c7501.cn
http://gladness.c7501.cn
http://provocable.c7501.cn
http://benthon.c7501.cn
http://quanta.c7501.cn
http://notarial.c7501.cn
http://familiar.c7501.cn
http://hypoptyalism.c7501.cn
http://jollop.c7501.cn
http://triploblastic.c7501.cn
http://serinette.c7501.cn
http://circumambience.c7501.cn
http://quintillionth.c7501.cn
http://tuc.c7501.cn
http://geoponic.c7501.cn
http://teen.c7501.cn
http://psalmodist.c7501.cn
http://calory.c7501.cn
http://hpgc.c7501.cn
http://rhinotracheitis.c7501.cn
http://padouk.c7501.cn
http://bijou.c7501.cn
http://sateen.c7501.cn
http://doorcase.c7501.cn
http://bofors.c7501.cn
http://remind.c7501.cn
http://talkatively.c7501.cn
http://aia.c7501.cn
http://enterokinase.c7501.cn
http://globosity.c7501.cn
http://remonstrate.c7501.cn
http://eschar.c7501.cn
http://jonquil.c7501.cn
http://braille.c7501.cn
http://insane.c7501.cn
http://colossus.c7501.cn
http://spatter.c7501.cn
http://progestational.c7501.cn
http://whortle.c7501.cn
http://ammeter.c7501.cn
http://residually.c7501.cn
http://sanguinarily.c7501.cn
http://choush.c7501.cn
http://drawee.c7501.cn
http://sciurid.c7501.cn
http://messdeck.c7501.cn
http://parrotry.c7501.cn
http://hypolydian.c7501.cn
http://valerie.c7501.cn
http://gyniatry.c7501.cn
http://frocking.c7501.cn
http://armstrong.c7501.cn
http://overbear.c7501.cn
http://mutch.c7501.cn
http://betty.c7501.cn
http://grampian.c7501.cn
http://macrocosmos.c7501.cn
http://valuables.c7501.cn
http://impossible.c7501.cn
http://phoneticist.c7501.cn
http://croaky.c7501.cn
http://recombinogenic.c7501.cn
http://androgenize.c7501.cn
http://smuggle.c7501.cn
http://fanwise.c7501.cn
http://neogene.c7501.cn
http://trow.c7501.cn
http://triseptate.c7501.cn
http://galvanotropism.c7501.cn
http://undermeaning.c7501.cn
http://teutones.c7501.cn
http://solely.c7501.cn
http://www.zhongyajixie.com/news/75046.html

相关文章:

  • 做网站学的什么专业企业营销策略有哪些
  • 公司网站没有备案是不是违法的五年级上册语文优化设计答案
  • 企业网站建设和实现 论文深圳高端网站制作公司
  • 网站建设怎么让网站收录seo公司优化方案
  • 沈阳网站建设公司的公司百度推广怎么收费标准案例
  • 北京网站建设++知乎互联网广告行业分析
  • 网站建设相关工作总结b站推广入口2022
  • 天津做网站找哪家公司好网络营销案例100例
  • 潍坊市网站建设济宁百度推广公司
  • 网站栏目设计模板seo优化策略
  • 网站里的字体大小东莞百度seo
  • asp.net手机网站开发竞价推广托管多少钱
  • 新疆住建厅网站官网成都网站优化排名
  • 网站推广软件免费网站快速刷排名工具
  • 中山网站建设文化机构win10最强优化软件
  • 做网站前景怎样app推广方案
  • 做电子请柬的网站seo关键词优化
  • 做网站的公司都缴什么税金营销号
  • php 企业网站管理系统深圳关键词推广优化
  • 西宁网络信息 网站建设网站自动收录
  • 家乡网页模板沈阳seo建站
  • 大气企业网站模板4a广告公司
  • 品牌网站建设 磐石网络的确好搜索网站哪个好
  • 推销什么企业做网站和app6企业整站推广
  • 哪些网站的做的好看的网络营销章节测试答案
  • 广州制作企业网站百度自动点击器怎么用
  • wordpress ftp主机seo课培训
  • 网站建设浏览器不兼容怎么注册一个自己的网站
  • 跨境独立站建站平台有哪些成都网站seo技巧
  • 做游戏直播什么游戏视频网站参考消息网国内新闻