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

对象 get和set方法

1、用途

用户定义的对象定义 getter 和 setter 以支持新增的属性。

示例:obj创建一个伪属性latest,它会返回log数组的最后一个元素。

var obj = {
  log: ['example','test'],
  get latest() {
    if (this.log.length == 0) return undefined;
    return this.log[this.log.length - 1];
  }
}
console.log(obj.latest); // "test".

2、使用defineProperty在现有对象上定义 getter

var o = { a:0 }

Object.defineProperty(o, "b", { get: function () { return this.a + 1; } });

console.log(o.b) // Runs the getter, which yields a + 1 (which is 1

3、实用技巧

使用getter和setter方法扩展 Date原型,为预定义好的Date类添加一个year的属性。定义属性year的getter和setter方法用到了Date类中已存在的getFullYear和setFullYear方法。

Object.defineProperty(Date.prototype, "year", {
                get: function() {
                    return this.getFullYear()
                },
                set: function(y) {
                    this.setFullYear(y)
                }
            });
            var now = new Date();
            console.log(now.year); // 2018
            now.year = 2001;
            console.log(now); //Tue Sep 11 2001 15:10:43 GMT+0800 (中国标准时间)

 

转载于:https://www.cnblogs.com/mengfangui/p/9627865.html

相关文章:

  • spsss基本统计分析操作攻略
  • liunx环境下mongodb3.2升级至3.6
  • Keil MDK下如何设置非零初始化变量(复位后变量值不丢失)
  • web服务器下出现大量TIME_WAIT
  • 正则 常见2
  • js限制文本框只能输入数字方法小结
  • VC++文件操作之最全篇
  • SDN控制器列表
  • jdbc学习
  • [HNOI2006]鬼谷子的钱袋
  • ES6装饰器Decorator基本用法
  • 章节六、3-读取Properties属性文件
  • Qt读写ini文件
  • js的Date.parse()方法和getTime()的坑
  • 图像匹配之欧式距离算法(转)
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • 「面试题」如何实现一个圣杯布局?
  • Kibana配置logstash,报表一体化
  • Sass Day-01
  • spark本地环境的搭建到运行第一个spark程序
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • 翻译--Thinking in React
  • 来,膜拜下android roadmap,强大的执行力
  • 移动端解决方案学习记录
  • 终端用户监控:真实用户监控还是模拟监控?
  • puppet连载22:define用法
  • 翻译 | The Principles of OOD 面向对象设计原则
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​Spring Boot 分片上传文件
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • #pragma once
  • (06)金属布线——为半导体注入生命的连接
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (10)STL算法之搜索(二) 二分查找
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (十三)Maven插件解析运行机制
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (转)3D模板阴影原理
  • ./和../以及/和~之间的区别
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .Net CF下精确的计时器
  • .net core 6 集成和使用 mongodb
  • .NET MVC第五章、模型绑定获取表单数据
  • .NET 材料检测系统崩溃分析
  • .NET 反射 Reflect
  • .Net(C#)常用转换byte转uint32、byte转float等
  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接