。人生三从境界:昨夜西风凋碧树,独上高楼,望尽天涯路。衣带渐宽终不悔,为伊消得人憔悴。众里寻他千百度,蓦然回首,那人却在灯火阑珊处

读写属性

使用访问器属性的其他场景还有后写入属性时进行合理性检查,以及每次读取属性时返回不同的值:

// 这个对象保证序号严格递增
const serialnum = {
    // 这个数据属性保存下一个序号
    // 属性名中的_提示它仅在内部使用
    _n: 0,
    
    // 返回当前值并递增
    get next() { return this._n++; },
    
    //把新增设置为n,但n必须大于当前值
    set next(n) {
        if (n > this._n) this._n = n;
        else throw new Error("serial number can only be set to a larger value");
    }
};
serialnum.next = 10; // 设置起始序号
serialnum.next       // => 10
serialnum.next       // => 11:每次读取next都得到不同的值

最后,再看一个通过获取方法实现“魔法”属性的实例:

// 这个对象的访问器属性返回随机数值
// 例如,表达式"random.octet"在被求值时
// 会给出一个0和255之间的随机值
const random = {
    get octet() { return Math.floor(Math.random()*256); },
    get uint16() { return Math.floor(Math.random()*65536); },
    get int16() { return Math.floor(Math.random()*65536)-32768; }
};

 

posted @   0a  阅读(55)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现

喜欢请打赏

扫描二维码打赏

了解更多

点击右上角即可分享
微信分享提示
人间忽晚,山河已秋。
剑桥
17°
00:13发布
剑桥
00:13发布
17°
西南风
5级
空气质量
相对湿度
80%
今天
小雨
10°/21°
周二
大雨
8°/15°
周三
小雨
6°/14°