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

企业网站建设 西宁上海公共招聘官网

企业网站建设 西宁,上海公共招聘官网,国际财经新闻最新头条,做网站设计的需要什么材料文章目录 一、数据劫持对象的访问器属性 二、Object.defineProperty()三、Proxy()四、补充1. Object类新增方法2. Array类新增方法 一、数据劫持 数据劫持#xff1a;能够拦截到数据被使用或被修改的时机#xff0c;在这个时机除了可以获取数据的值或对数据的值进行修改之外… 文章目录 一、数据劫持对象的访问器属性 二、Object.defineProperty()三、Proxy()四、补充1. Object类新增方法2. Array类新增方法 一、数据劫持 数据劫持能够拦截到数据被使用或被修改的时机在这个时机除了可以获取数据的值或对数据的值进行修改之外还可以执行其他功能。 当对数据进行修改时除了要修改数据自身之外还希望对所有使用了该数据的位置进行同步修改。 对象的访问器属性 访问器属性由 “getter” 和 “setter” 方法表示。在对象字面量中它们用 get 和 set 表示 let obj {_msg: hello world,get msg() {// 当读取 obj.msg 时getter 起作用return this._msg;},set msg(value) {// 当执行 obj.msg value 操作时setter 起作用this._msg value} };当读取 obj.msg 时getter 起作用当 obj.msg 被赋值时setter 起作用。从外表看访问器属性看起来就像一个普通属性。这就是访问器属性的设计思想。我们不以函数的方式调用我们正常读取它getter 会在幕后运行。如果访问器属性只有一个 getter。在赋值操作 obj.msg xxx将会出现错误Error属性只有一个 getter这样就会有一个“虚拟”的属性它是可读且可写的。我们会利用这种方式进行数据劫持。 二、Object.defineProperty() Object.defineProperty(对象, 属性名, { 配置项 })配置项 value该属性对应的值writable该属性是否可被重写默认是 falseenumerable该属性是否可被枚举默认是 falseget是一个函数, 叫做 getter 获取器可以来决定该属性的值 get 函数的返回值, 就是当前这个属性的值注意: 不能和 value 和 writable 一起使用会报错 set是一个函数叫做 setter 设置器当你需要修改该属性的值的时候会触发该函数 Object.defineProperty(obj, age, {// value: 18,// writable: true,enumerable: true,// 该函数的返回值就是 age 属性的值get () {return 20},set (val) {console.log(你想修改 age 的值, 你想修改为 : , val)} })升级版Object.defineProperties(对象, { 配置项组 }) 配置项组键为属性名值为当前属性的配置项 Object.defineProperties(obj, {属性1: { 配置项 },属性2: { 配置项 } })注意Object.defineProperty和Object.defineProperties无法劫持后来添加的属性 三、Proxy() ES6新增的本地对象语法为new Proxy(原始对象, { 配置项 })用于实现数据代理。 返回值就是代理之后的对象 const obj { name: Jack, age: 18 } // 开始代理 const result new Proxy(obj, {// 配置 get 进行代理设置get (target, property) {// target要代理的目标对象当前案例为 obj// property该对象内的每一个属性自动遍历return target[property];},// 配置 set 进行修改set (target, property, val) {// target要代理的目标对象当前案例为 obj// property该对象内要修改的属性// val要修改的属性的值target[property] valconsole.log(你试图修改 property 属性, 你想修改为 : , val, 我需要根据你修改的内容重新渲染页面)// 注意简单代理需要返回truereturn true;} })四、补充 1. Object类新增方法 Object.create(obj, { 配置项组 }) 创建返回一个新对象这个新对象的__proto__指向obj配置项组键为新对象的属性名值为当前属性的配置项 配置项参考Object.defineProperty()的配置项 Object.is(value1, value2) 判断两个value是否是相同的值返回值为布尔值 Object.assign(obj1, obj2) 将obj2合并到obj1并返回合并之后的obj1 Object.keys(obj) 返回对象所有可被枚举的key以数组的形式呈现 Object.values(obj) 返回对象所有可被枚举key的value以数组的形式呈现 Object.setPrototypeOf(obj, prototype) 修改obj的__proto__指向指定的prototypeprototype为对象或null返回值为修改后的obj Object.getPrototypeOf(obj) 获取并返回obj的原型对象 2. Array类新增方法 Array.from( 参数 ) 根据指定参数创建新数组要求该参数可被迭代。可根据伪数组创建真数组实现伪转真数组的深拷贝 Array.of( 数据, ... ) 根据指定数据创建数组类似Array( 数据, ... )但Array.of( 数据, ... )接收一个数值型数据时不会作为长度 Array.isArray( 数据 ) 判断指定数据是否为数组返回值为布尔值
http://www.dnsts.com.cn/news/263784.html

相关文章:

  • 做一个网站最低多少钱智慧树网页设计与制作答案
  • 用jq和ajax做能登陆注册的一个网站网站美工用什么软件
  • 深鑫辉网站建设整体vi设计
  • 网站有哪些后台旅游微信网站建设
  • 在网站中添加百度地图wordpress抖音
  • 牡丹江建设信息网站做私人网站 违法
  • 携程网站官网公司网站实名认证
  • 有人做网站推广吗宁波高端网站设计价格
  • 建站全过程四会市网站建设
  • 平昌县住房和城乡建设局网站华夏网站建设
  • 龙岗区网站建设公司在线crm软件
  • 网站优化时间做面食专业网站
  • 有什么做设计的兼职网站网站备案回访电话号码
  • 游戏网站网页设计wordpress设置网址
  • 营销型网站模版首页2免费空间
  • 馆陶做网站wordpress要收钱吗
  • 网络技术网站是做什么的wordpress 4.7.6
  • 做美工的网站wordpress主题 门户
  • 哪家公司做网站好厦门做网站哪家强
  • 闲鱼钓鱼网站怎么做软件开发3000人天报价标准
  • 可以做编程题的网站发稿服务
  • 网站开发语言php网站制作多少钱?
  • 深圳网站设计服务商建立一个网站怎么做
  • 汽车网站建设规划书黑龙江省住房与城乡建设厅网站
  • 外汇网站模版智慧团建团员登录网站
  • 贵阳网站上门备案业务旅游网站排行榜前20
  • 营销型网站架构网站建设与管理是什么工作
  • 怎样建设自已的网站了解龙岗网站建设
  • 沈阳铁西做网站公司建设工程招标公告在哪个网站
  • 网站建设的网络公林甸网站建设