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

安新网站建设wordpress分类目录

安新网站建设,wordpress分类目录,网站开发分层,江苏初中课程基地建设网站Object.defineProperties 详解 Object.defineProperties 是 JavaScript 中用于在一个对象上定义或修改多个属性的方法。它是 Object.defineProperty 的复数版本#xff0c;允许你一次性定义多个属性。 基本语法 Object.defineProperties(obj, props)obj#xff1a;要在其上定…Object.defineProperties 详解 Object.defineProperties 是 JavaScript 中用于在一个对象上定义或修改多个属性的方法。它是 Object.defineProperty 的复数版本允许你一次性定义多个属性。 基本语法 Object.defineProperties(obj, props)obj要在其上定义或修改属性的对象props一个对象其键表示要定义或修改的属性名值是对应属性的描述符对象 属性描述符 每个属性描述符可以包含以下可选键 数据描述符 value属性的值默认为 undefinedwritable是否可写默认为 falseenumerable是否可枚举默认为 falseconfigurable是否可配置默认为 false 存取描述符 get作为该属性的 getter 函数默认为 undefinedset作为该属性的 setter 函数默认为 undefined 注意数据描述符和存取描述符不能同时使用即不能既有 value 又有 get 使用示例 1. 定义多个数据属性 const obj {};Object.defineProperties(obj, {property1: {value: true,writable: true},property2: {value: Hello,writable: false} });console.log(obj.property1); // true console.log(obj.property2); // Hello2. 定义存取器属性 const person {}; let ageValue 0;Object.defineProperties(person, {name: {value: John,writable: true},age: {get: function() {return ageValue;},set: function(newValue) {if (newValue 0) {ageValue newValue;}},enumerable: true} });person.age 30; console.log(person.age); // 30 person.age -5; // 不会设置因为值无效 console.log(person.age); // 仍然 303. 控制属性特性 const car {};Object.defineProperties(car, {brand: {value: Toyota,writable: false, // 不可写enumerable: true, // 可枚举configurable: false // 不可配置},model: {value: Camry,writable: true,enumerable: false, // 不可枚举configurable: true} });console.log(Object.keys(car)); // [brand] - model不可枚举 car.brand Honda; // 静默失败严格模式下会报错 console.log(car.brand); // Toyota与 Object.defineProperty 的区别特性Object.definePropertyObject.defineProperties一次性能定义的属性数1个多个性能略快略慢但批量操作更高效使用场景单个属性操作多个属性批量操作实际应用场景 1. 创建不可变对象 const constants {};Object.defineProperties(constants, {PI: {value: 3.14159,writable: false,enumerable: true,configurable: false},E: {value: 2.71828,writable: false,enumerable: true,configurable: false} });2. 实现私有变量 function Person(name) {let _age 0;Object.defineProperties(this, {name: {value: name,writable: true},age: {get: function() { return _age; },set: function(value) {if (value 0) _age value;},enumerable: true}}); }const p new Person(Alice); p.age 30; console.log(p.age); // 30 p.age -5; // 无效 console.log(p.age); // 仍然 303. 扩展对象功能 // 安全地扩展原型避免枚举 Object.defineProperties(Array.prototype, {sum: {value: function() {return this.reduce((a, b) a b, 0);},enumerable: false},average: {value: function() {return this.length ? this.sum() / this.length : 0;},enumerable: false} });const nums [1, 2, 3]; console.log(nums.sum()); // 6 console.log(nums.average()); // 2注意事项 默认值如果不指定writable, enumerable 和 configurable 默认为 false严格模式在严格模式下违反属性描述符限制会抛出错误性能频繁使用会影响性能适合初始化时使用兼容性ES5 特性但现代浏览器和Node.js都支持 Object.defineProperties 提供了对对象属性更精细的控制能力特别适合需要精确控制属性行为的场景。
http://www.pierceye.com/news/103292/

相关文章:

  • 建设银行园区公积金管理中心网站地方门户网站推广
  • 桂林市网站设计wordpress远程数据库
  • 网站建设多钱怎么做网上卖菜网站
  • 响应式电商网站网站设计常见问题
  • 爱常德网凡科网站可以做seo优化
  • 建设银行手机银行官方网站小程序app公众号的区别
  • 彩票网站维护需要几天企业展示网站建设需要做什么
  • cms网站后台模版惠州网站设计哪家好
  • 海南智能网站建设设计湘潭学校网站建设 x磐石网络
  • 网站建设的入门书籍表格我做视频网站
  • 数据库跟网站内容青岛公司做网站的价格
  • 成都市金牛区建设和交通局网站营销专业网站
  • 免费的视频网站如何赚钱wordpress推广系统
  • 上海酒店团购网站建设网站建设风险分析
  • 做网站的抬头怎么做南昌app定制
  • 深圳市企业网站建设企业品牌设计
  • 做图网站有哪些内容惠州抖音推广
  • 郑州中原区建设局网站公司网站建设素材
  • 企业手机网站源码下载企查查网页版
  • 金科网站建设ps做网站难吗
  • 如何在年报网站上做遗失公告wordpress默认摘要
  • 中国网站服务器哪个好有哪些做公司网站
  • 做宠物的网站有哪些如何做电商生意
  • 具有品牌的常州做网站关于网站建设的广告词
  • 孝感网站推广品牌策划公司都有哪些
  • 保洁公司用哪些网站做推广wordpress aj提交评论
  • 互联网金融p2p网站建设模板简历模板免费下载网站
  • 绍兴建设网站制作3免费做网站
  • 东莞运营推广网站建设费用wordpress 单栏 主题
  • 律师事务所网站制作WordPress 经典博客