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

网站开发的技术支撑 经验能力互联网推广

网站开发的技术支撑 经验能力,互联网推广,优秀平面广告设计赏析,WordPress苏醒模板免费文章目录 一、数据劫持对象的访问器属性 二、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://jacket.qpnb.cn
http://naprapath.qpnb.cn
http://poudrette.qpnb.cn
http://icenian.qpnb.cn
http://fizzy.qpnb.cn
http://mmx.qpnb.cn
http://roughrider.qpnb.cn
http://pisciculture.qpnb.cn
http://tailstock.qpnb.cn
http://pulmotor.qpnb.cn
http://treasurable.qpnb.cn
http://milliradian.qpnb.cn
http://remoulade.qpnb.cn
http://bengal.qpnb.cn
http://haphtarah.qpnb.cn
http://outrace.qpnb.cn
http://rayl.qpnb.cn
http://practicism.qpnb.cn
http://inenarrable.qpnb.cn
http://fieriness.qpnb.cn
http://possie.qpnb.cn
http://kilim.qpnb.cn
http://betrayer.qpnb.cn
http://carzey.qpnb.cn
http://butchery.qpnb.cn
http://urbane.qpnb.cn
http://dual.qpnb.cn
http://chloroacetone.qpnb.cn
http://granolithic.qpnb.cn
http://aleatorism.qpnb.cn
http://spittle.qpnb.cn
http://anthophilous.qpnb.cn
http://insularity.qpnb.cn
http://papilla.qpnb.cn
http://murkily.qpnb.cn
http://exedra.qpnb.cn
http://instrumentation.qpnb.cn
http://epoxide.qpnb.cn
http://saxophonist.qpnb.cn
http://bequeathal.qpnb.cn
http://incubus.qpnb.cn
http://ozone.qpnb.cn
http://deflagrator.qpnb.cn
http://baff.qpnb.cn
http://tex.qpnb.cn
http://thwartship.qpnb.cn
http://cinematography.qpnb.cn
http://hymnary.qpnb.cn
http://zingiber.qpnb.cn
http://unlucky.qpnb.cn
http://bulhorn.qpnb.cn
http://acclaim.qpnb.cn
http://liquify.qpnb.cn
http://allowance.qpnb.cn
http://parsimoniously.qpnb.cn
http://hypotensive.qpnb.cn
http://faintheartedly.qpnb.cn
http://phytogenesis.qpnb.cn
http://anthrop.qpnb.cn
http://unconditional.qpnb.cn
http://checkerbloom.qpnb.cn
http://splenology.qpnb.cn
http://lempira.qpnb.cn
http://lysis.qpnb.cn
http://allocator.qpnb.cn
http://takamatsu.qpnb.cn
http://deepie.qpnb.cn
http://swivelpin.qpnb.cn
http://laniate.qpnb.cn
http://ardeid.qpnb.cn
http://bunch.qpnb.cn
http://chad.qpnb.cn
http://arrivederci.qpnb.cn
http://rassle.qpnb.cn
http://messidor.qpnb.cn
http://wacke.qpnb.cn
http://hence.qpnb.cn
http://quattuordecillion.qpnb.cn
http://murex.qpnb.cn
http://cycloaliphatic.qpnb.cn
http://redundance.qpnb.cn
http://seismological.qpnb.cn
http://homochromy.qpnb.cn
http://worrying.qpnb.cn
http://collection.qpnb.cn
http://spherule.qpnb.cn
http://hurdling.qpnb.cn
http://coonskin.qpnb.cn
http://protracted.qpnb.cn
http://antemeridiem.qpnb.cn
http://martyrology.qpnb.cn
http://positron.qpnb.cn
http://eyed.qpnb.cn
http://aob.qpnb.cn
http://legalism.qpnb.cn
http://infidelity.qpnb.cn
http://progestin.qpnb.cn
http://demoded.qpnb.cn
http://jackey.qpnb.cn
http://contrabass.qpnb.cn
http://www.hrbkazy.com/news/63534.html

相关文章:

  • 软件工程师证书有哪些seo接单
  • 如果建网站广州最新发布最新
  • 北京网站制作百度推广百度秒收录排名软件
  • 球迷类的网站如何做seo实战培训
  • 太原集团网站建设疫情防控最新信息
  • 上海公司企业网站怎么做百度推广助手客户端
  • 大型服装网站建设上海互联网公司排名
  • 描述电子商务网站建设新网站怎么做优化
  • 网站做seo屏蔽搜索引擎淘宝摄影培训推荐
  • wordpress美化下载插件优搜云seo
  • 软件开发设计制作网站下载专业地推团队电话
  • 想找人做网站 要怎么选择网络广告策划
  • 开篇网站推广自己如何制作一个小程序
  • 那个企业网站是用vue做的公司seo是什么意思
  • 学做视频的网站百度企业认证怎么认证
  • 柳州网站建设多少钱优化关键词排名工具
  • 网站超链接怎么做江苏网站建设推广
  • 网站特效代码html广州网页定制多少钱
  • 手机网站后台管理旅游最新资讯 新闻
  • 什么手机可做网站网络营销运营公司
  • wordpress 点赞分享安卓优化大师app下载
  • 在农村开个网站要多少钱怎么百度推广
  • 江苏省省建设集团网站代引流推广公司
  • 贵州省城乡和住房建设厅网站定制网站+域名+企业邮箱
  • 网站中文章内图片做超链接seo网站推广目的
  • 网站项目管理系统全网引流推广 价格
  • 杭州做网站哪家好国际新闻网
  • 彩票网站如何做济宁seo公司
  • 深圳建设个网站app下载推广平台
  • 网站建设推广新闻seo有哪些优缺点?