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

html代码爱心常州seo建站

html代码爱心,常州seo建站,网站备案 他人身份证,dz门户 WordPress目录 一、Object.defineProperty()作用基本语法示例:定义一个只读属性示例:定义 getter/setter 二、Proxy作用基本语法示例:拦截属性访问 对比:defineProperty vs Proxy场景选择建议 在 JavaScript 中,Object.definePr…

目录

  • 一、Object.defineProperty()
    • 作用
    • 基本语法
    • 示例:定义一个只读属性
    • 示例:定义 getter/setter
  • 二、`Proxy`
    • 作用
    • 基本语法
    • 示例:拦截属性访问
  • 对比:defineProperty vs Proxy
  • 场景选择建议

在 JavaScript 中,Object.defineProperty()Proxy 都可以用来拦截/控制对象的属性访问与修改,但它们适用的场景、能力和语法上有较大差异。

一、Object.defineProperty()

作用

给对象的某个属性定义更精细的特性,比如只读、不可枚举、拦截 getter/setter。

基本语法

Object.defineProperty(obj, 'key', {get() { return value; },set(newVal) { value = newVal; },enumerable: true,configurable: true
});

示例:定义一个只读属性

const user = {};
Object.defineProperty(user, 'name', {value: 'Tom',writable: false // 不可更改
});user.name = 'Jerry';
console.log(user.name); // Tom

示例:定义 getter/setter

const person = {};
let _age = 18;Object.defineProperty(person, 'age', {get() {console.log('get age');return _age;},set(val) {console.log('set age:', val);_age = val;}
});person.age = 20; // set age: 20
console.log(person.age); // get age → 20

二、Proxy

作用

创建一个对象的代理,可拦截几乎所有操作(读取、写入、删除、函数调用等)。

基本语法

const proxy = new Proxy(target, {get(target, prop) {return target[prop];},set(target, prop, value) {target[prop] = value;return true;}
});

示例:拦截属性访问

const user = { name: 'Tom' };const proxy = new Proxy(user, {get(target, prop) {console.log(`读取属性:${prop}`);return target[prop];},set(target, prop, value) {console.log(`设置属性:${prop} = ${value}`);target[prop] = value;return true;}
});proxy.name;          // 读取属性:name
proxy.age = 30;      // 设置属性:age = 30

更多关于 proxy 的内容可以阅读 Proxy 代理和 Reflect API

对比:defineProperty vs Proxy

特性Object.defineProperty()Proxy
支持属性拦截✅ 仅能拦截已知属性✅ 所有属性都能动态拦截
可拦截类型访问/设置访问、设置、删除、函数调用等(13种 trap)
是否修改原对象✅ 直接修改原对象❌ 返回一个新的代理对象
多层嵌套对象支持❌ 需手动为每一层递归处理✅ 可结合递归实现深层代理
Vue2 用于响应式defineProperty 实现响应式
Vue3 用于响应式✅ 使用 Proxy 实现响应式

场景选择建议

需求推荐方式
精准控制某个属性Object.defineProperty()
构建响应式对象(如 Vue3)Proxy
想对整个对象做统一拦截Proxy
兼容老浏览器Object.defineProperty()(IE9+)

如果你想自己实现一个响应式系统、双向绑定,或者拦截 API 调用,Proxy 更强大。如果只是限制某个属性或定义只读/计算属性,defineProperty 就足够。

http://www.dtcms.com/wzjs/133820.html

相关文章:

  • 如何新建一个网站网上怎么推广产品
  • 县政府网站建设实施方案教育培训平台
  • 注册公司要钱吗青岛自动seo
  • 网站建设维护日记湖南优化公司
  • 网站怎么做seo优化标题关键词优化技巧
  • 凯发网站怎么做推广网站
  • 高职思政主题网站建设作用营销型网站建设多少钱
  • 那些市区做网站群seo点击软件哪个好用
  • 手机营销网站模板网络运营和网络营销的区别
  • 网站建设方面的文章找个免费网站这么难吗
  • 专门做win7系统的网站百度推广怎么做的
  • 原创网站设计费用如何做网站设计
  • 织梦网站模板如何安装seo培训班 有用吗
  • 北京如何做网站天津seo外包平台
  • 做自己的直播网站网站模板下载
  • 临淄信息网最新招聘小时工谷歌官方seo入门指南
  • 响应式自助建站平台新浪博客seo
  • 网站f式布局地推任务网
  • 做片头 网站网络推广工作是做什么的
  • 建设网站 (公司)2022年明星百度指数排行
  • 建网站教学视频昆明网络营销
  • 金融服务网站建设内容程序员培训机构哪家好
  • 武汉婚纱摄影网站建设收录优美图片app
  • 网站做下载功能一般的电脑培训班要多少钱
  • 2017两学一做竞赛网站免费二级域名查询网站
  • 把网站做静态化是什么意思百度手机助手下载正版
  • 徐州关键字优化资讯seo关键词优化方法
  • 网站运营专员做六休一怎么做平台推广
  • 上海企业建设网站价格图片识别 在线识图
  • 建设政府网站集约化浙江百度推广