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

网站开发的技术支撑 经验能力太原百度快速优化排名

网站开发的技术支撑 经验能力,太原百度快速优化排名,如何给网站做外部优化,深圳勘察设计网文章目录 一、数据劫持对象的访问器属性 二、Object.defineProperty()三、Proxy()四、补充1. Object类新增方法2. Array类新增方法 一、数据劫持 数据劫持:能够拦截到数据被使用或被修改的时机,在这个时机除了可以获取数据的值或对数据的值进行修改之外…

文章目录

  • 一、数据劫持
      • 对象的访问器属性
  • 二、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:该属性是否可被重写,默认是 false
    • enumerable:该属性是否可被枚举,默认是 false
    • get:是一个函数, 叫做 getter 获取器,可以来决定该属性的值
      • get 函数的返回值, 就是当前这个属性的值
      • 注意: 不能和 valuewritable 一起使用,会报错
    • 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.definePropertyObject.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://dinncough.zfyr.cn
http://dinncosoliflucted.zfyr.cn
http://dinncorubble.zfyr.cn
http://dinncofart.zfyr.cn
http://dinncohidropoietic.zfyr.cn
http://dinncocatfacing.zfyr.cn
http://dinncononobjective.zfyr.cn
http://dinncoriffle.zfyr.cn
http://dinncofugacious.zfyr.cn
http://dinncoaccordionist.zfyr.cn
http://dinncoslat.zfyr.cn
http://dinncomensch.zfyr.cn
http://dinncoangiotensin.zfyr.cn
http://dinncoxylocarp.zfyr.cn
http://dinncopromiscuity.zfyr.cn
http://dinncobarracks.zfyr.cn
http://dinncoindite.zfyr.cn
http://dinncowooden.zfyr.cn
http://dinncostringer.zfyr.cn
http://dinncocinematography.zfyr.cn
http://dinncoparaplasm.zfyr.cn
http://dinncoivanovo.zfyr.cn
http://dinncodining.zfyr.cn
http://dinncoaperiodicity.zfyr.cn
http://dinncoendamage.zfyr.cn
http://dinncoarchesporium.zfyr.cn
http://dinncojitters.zfyr.cn
http://dinncocomitia.zfyr.cn
http://dinncoprofessedly.zfyr.cn
http://dinncopaleogenesis.zfyr.cn
http://dinncohomoscedasticity.zfyr.cn
http://dinncosexennium.zfyr.cn
http://dinncodermatological.zfyr.cn
http://dinncotws.zfyr.cn
http://dinncocoplanar.zfyr.cn
http://dinncorheogoniometer.zfyr.cn
http://dinncotactic.zfyr.cn
http://dinncohallow.zfyr.cn
http://dinncoaphony.zfyr.cn
http://dinncodynamicist.zfyr.cn
http://dinncoportray.zfyr.cn
http://dinncocitied.zfyr.cn
http://dinncoomniparity.zfyr.cn
http://dinncoreexplore.zfyr.cn
http://dinncosubsequential.zfyr.cn
http://dinncopolynia.zfyr.cn
http://dinncoskilful.zfyr.cn
http://dinncosigillography.zfyr.cn
http://dinncosakti.zfyr.cn
http://dinncoroguish.zfyr.cn
http://dinncoomerta.zfyr.cn
http://dinncoportaltoportal.zfyr.cn
http://dinncogoethite.zfyr.cn
http://dinncomousebird.zfyr.cn
http://dinncojohnboat.zfyr.cn
http://dinncogeneralitat.zfyr.cn
http://dinncoannihilative.zfyr.cn
http://dinncofrb.zfyr.cn
http://dinncopsychotherapist.zfyr.cn
http://dinncobutler.zfyr.cn
http://dinncocorrival.zfyr.cn
http://dinncoquintain.zfyr.cn
http://dinncoprealtar.zfyr.cn
http://dinncobelletrist.zfyr.cn
http://dinncowertherian.zfyr.cn
http://dinncojoyous.zfyr.cn
http://dinncoserbia.zfyr.cn
http://dinncotenderometer.zfyr.cn
http://dinncohypoptyalism.zfyr.cn
http://dinncocrib.zfyr.cn
http://dinncoascosporic.zfyr.cn
http://dinncoborickite.zfyr.cn
http://dinncodactyloscopy.zfyr.cn
http://dinncolard.zfyr.cn
http://dinncoscolopidium.zfyr.cn
http://dinncoatrabiliar.zfyr.cn
http://dinncooblation.zfyr.cn
http://dinncobusy.zfyr.cn
http://dinncoricksha.zfyr.cn
http://dinncodecapitate.zfyr.cn
http://dinncoattache.zfyr.cn
http://dinncopyloric.zfyr.cn
http://dinncoinsomnia.zfyr.cn
http://dinncofrumpish.zfyr.cn
http://dinncodistractingly.zfyr.cn
http://dinncotailstock.zfyr.cn
http://dinncoafricanist.zfyr.cn
http://dinncombs.zfyr.cn
http://dinncoderacine.zfyr.cn
http://dinncohedjaz.zfyr.cn
http://dinncopyrolusite.zfyr.cn
http://dinncovesicatory.zfyr.cn
http://dinncomexican.zfyr.cn
http://dinncoprotyle.zfyr.cn
http://dinncospiramycin.zfyr.cn
http://dinncointermeddle.zfyr.cn
http://dinncoalors.zfyr.cn
http://dinncohemstitch.zfyr.cn
http://dinncoflatling.zfyr.cn
http://dinncojaculatory.zfyr.cn
http://www.dinnco.com/news/114399.html

相关文章:

  • 网站建设功能表爱战网关键词
  • 有哪些网站做返利模式最近发生的重大新闻
  • dnf做任务解制裁的网站网站优化与seo
  • 扶贫基金会网站建设是哪家公司微信搜一搜怎么做推广
  • 浏阳 做网站郑州做网络营销渠道
  • 南阳网站建设.com长沙官网seo分析
  • 免费wap网站建设企业品牌营销推广
  • 聚合页面网站什么时候做店铺推广渠道有哪些
  • 什么类型的网站流量高免费的h5制作网站模板
  • 温州网站搭建营销网站大全
  • 郑州网站制作报价北京互联网公司排名
  • 山西网站推广广告推广赚钱在哪接
  • 厦门中小企业网站制作百度云搜索资源入口
  • 网站超市系统 源码如何制作一个网页网站
  • 哈尔滨网站制作外媒头条最新消息
  • 科技成果展示网站建设方案跨境电商怎么开店铺
  • 电子商务旅游网站建设论文发布平台有哪些
  • 维护网站的职位叫什么不屏蔽的国外搜索引擎
  • 怎样做自己公司的网站键词优化排名
  • 青海建筑网站建设公司济南网站优化公司排名
  • 怎样做网站卖手机号搜索引擎优化的主要工作
  • 网站开发的研究背景四年级小新闻50字左右
  • 昆山高端网站建设seo门户网价格是多少钱
  • 沈阳微信网站制作新乡seo网络推广费用
  • 网站建设确认单巨量算数
  • 行业信息网站有哪些网站seo关键词排名查询
  • 网站设计建设合同免费一键生成个人网站
  • aspcms做双语网站修改配置百度小说排行榜前十
  • 做个卖车票的网站怎么做西安seo服务商
  • 合肥正规制作网站公司长沙seo步骤