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

网站开发课程设计总结门户网站开发过程视频

网站开发课程设计总结,门户网站开发过程视频,中学网站管理系统下载,济南网站制作0531soso以下是关于 Object.defineProperty 与 Proxy 的核心知识点解析、对比及使用场景说明: 1. Object.defineProperty 核心功能 定义或修改对象属性的特性:如 value、writable、enumerable、configurable。数据劫持:通过 getter 和 setter 监听属…

以下是关于 Object.definePropertyProxy 的核心知识点解析、对比及使用场景说明:


1. Object.defineProperty

核心功能
  • 定义或修改对象属性的特性:如 valuewritableenumerableconfigurable
  • 数据劫持:通过 gettersetter 监听属性的读取和修改。
基本语法
Object.defineProperty(obj, prop, {value: 1,          // 属性值writable: true,    // 是否可修改enumerable: true,  // 是否可枚举(如出现在 for-in 循环中)configurable: true,// 是否可删除或重新配置// 存取描述符(与 value/writable 互斥)get() { return this._value; },set(newVal) { this._value = newVal; }
});
示例:实现简单数据响应式
const data = { count: 0 };Object.defineProperty(data, 'count', {get() {console.log('读取 count');return this._count;},set(newVal) {console.log('更新 count');this._count = newVal;}
});data.count = 10; // 输出: "更新 count"
console.log(data.count); // 输出: "读取 count" → 10
缺点
  • 无法监听新增/删除属性:需手动调用 Vue.setVue.delete(Vue 2 的限制)。
  • 数组监听需特殊处理:通过重写数组方法(如 pushpop)。
  • 性能问题:需递归遍历对象所有属性。

2. Proxy

核心功能
  • 代理整个对象:拦截对象的 13 种操作(如属性读取、赋值、删除、函数调用等)。
  • 更强大的监听能力:支持监听新增属性、数组变化等。
基本语法
const proxy = new Proxy(target, {get(target, prop, receiver) { /* 拦截读取 */ },set(target, prop, value, receiver) { /* 拦截赋值 */ },deleteProperty(target, prop) { /* 拦截删除 */ },// 其他拦截器:has、apply、construct 等
});
示例:实现数据响应式
const data = { count: 0 };const proxy = new Proxy(data, {get(target, prop) {console.log(`读取 ${prop}`);return Reflect.get(target, prop);},set(target, prop, value) {console.log(`更新 ${prop}${value}`);return Reflect.set(target, prop, value);}
});proxy.count = 10; // 输出: "更新 count 为 10"
console.log(proxy.count); // 输出: "读取 count" → 10
优势
  • 全面监听:支持属性新增、删除、数组方法(如 push)等。
  • 性能优化:无需初始化遍历对象属性。
  • 非侵入性:直接代理对象,不修改原对象。

3. 核心对比

特性Object.definePropertyProxy
监听范围只能监听已存在的属性监听整个对象的所有操作
数组支持需重写数组方法直接监听数组变化(如 push
性能初始化时递归遍历属性,性能较低按需拦截,性能更高
兼容性支持 IE9+支持现代浏览器(IE 不支持)
使用复杂度需手动处理新增/删除属性自动处理所有操作

4. 应用场景

Object.defineProperty
  • 兼容性要求高:需支持旧浏览器(如 IE)。
  • 简单数据劫持:已知属性的监听场景(如 Vue 2 的响应式系统)。
Proxy
  • 现代浏览器项目:如 Vue 3、React 新特性。
  • 复杂监听需求:需监听属性新增、删除或数组变化。
  • 库/框架开发:提供更灵活的数据劫持能力。

5. 进阶示例

Proxy 实现深度监听
function reactive(obj) {return new Proxy(obj, {get(target, prop) {const value = Reflect.get(target, prop);// 递归代理嵌套对象return typeof value === 'object' ? reactive(value) : value;},set(target, prop, value) {console.log(`更新 ${prop}`);return Reflect.set(target, prop, value);}});
}const data = reactive({ user: { name: 'Alice' } });
data.user.name = 'Bob'; // 输出: "更新 name"

6. 总结

  • Object.defineProperty:适合已知属性的简单劫持,兼容性好,但功能有限。
  • Proxy:功能强大,适合现代项目,能全面监听对象变化,是未来趋势。
  • 实际选择:根据项目需求(兼容性、功能复杂度)决定使用哪种方案。

文章转载自:

http://KYMNqX1t.fydsr.cn
http://T8owr4M5.fydsr.cn
http://Xhsicjf7.fydsr.cn
http://QudI7VlP.fydsr.cn
http://unguNKit.fydsr.cn
http://GpbsHwPC.fydsr.cn
http://fHakWpTF.fydsr.cn
http://jnEfsim8.fydsr.cn
http://33Z5jGeb.fydsr.cn
http://QJlcQRo7.fydsr.cn
http://FiXLQQmd.fydsr.cn
http://ghdpwL1l.fydsr.cn
http://ErRglv99.fydsr.cn
http://iyVTFlC4.fydsr.cn
http://DYSU7Wyv.fydsr.cn
http://gKiFRQqd.fydsr.cn
http://hzjt8kSM.fydsr.cn
http://R8Tq6eNw.fydsr.cn
http://UGGBou95.fydsr.cn
http://TVh00dEC.fydsr.cn
http://mWQWSCzh.fydsr.cn
http://zbRMaGh1.fydsr.cn
http://sDFJxm7Q.fydsr.cn
http://gYTcablg.fydsr.cn
http://Wp2WYHzM.fydsr.cn
http://aRVThisQ.fydsr.cn
http://KvG8mPsY.fydsr.cn
http://MyyVngkx.fydsr.cn
http://YJQc7N5K.fydsr.cn
http://QjMd3R4n.fydsr.cn
http://www.dtcms.com/wzjs/660369.html

相关文章:

  • 专门做宠物食品的网站京津冀协同发展现状
  • 邮件验证登录网站开发公司网站建设费用会计入账
  • 常州知名网站建设公司wordpress导入主题慢
  • 做旅游海报的软件或是网站咸阳网
  • 网站建设实训报告ppt页面调用不了wordpress
  • 企业网站一年多少钱帮客户做违法网站违法么
  • 学院网站建设进度情况说明英文网站的外部链接 建设
  • 可以网站可以做免费的文案广告手机优化大师怎么卸载
  • 网站 手机版网站开发合同wordpress图床
  • 自助式网站建设 济南百度ai智能搜索引擎
  • 我想做个网站珠海seo快速排名
  • 自定义表单网站云seo
  • 茂民网站建设投资公司注册经营范围
  • 智慧记免费官方下载排名优化seo公司
  • 网站自己做百度站长工具使用方法
  • 网站建设时怎么附加数据库wordpress 教育插件
  • 建材有限公司光速东莞网站建设个人网站主页html5
  • 莆田网站建设创意上海比较有名的外贸公司
  • 塑胶东莞网站建设技术支持灌云网站建设
  • 深圳旅游公司网站龙采网站建设
  • 网站刷链接怎么做的怀来网站建设
  • eclipse与jsp网站开发西安网站seo 优帮云
  • 网站备案是不是就是空间备案ppt免费模板下载网站有哪些
  • 社交网站 设计科技公司网页图片
  • 企业网站怎么优化销售管理系统业务流程图
  • php企业网站开发教程商标注册网上申请流程25个步骤
  • 做网站卖什么软件设计类专业需要美术功底吗
  • 如何建设万网网站北京学设计去哪个网站
  • 自己做网站页面用php做网站教程
  • 济南高端网站制作公司有专业做淘宝网站的美工吗