码迷,mamicode.com
首页 > 其他好文 > 详细

兼容性

时间:2020-12-24 11:44:41      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:return   property   his   name   函数   obj   rgba   UNC   一个   

一个原本是数据属性的属性,代码里还保存着许多与它相关的代码片段。

现在除了一些变故,我们要改变它。

现在把它变成访问器属性。

假设对象为user,此数据属性为age:
写下user.age是为了得到什么?当然是得到具体的年龄。

可这句话执行时,get函数会站出来说,使用user.age实际上就是在调用我啊,我开始发力了,我要把我的产出作为你这句话的结果。

 1 function User(name, birthday) {
 2   this.name = name;
 3   this.birthday = birthday;
 4 
 5   // 年龄是根据当前日期和生日计算得出的
 6   Object.defineProperty(this, "age", {
 7     get() {
 8       let todayYear = new Date().getFullYear();
 9       return todayYear - this.birthday.getFullYear();
10     }
11   });
12 }
13 
14 let john = new User("John", new Date(1992, 6, 1));
15 
16 alert( john.birthday ); // birthday 是可访问的
17 alert( john.age );      // ……age 也是可访问的

如此一来,原属性并没有从对象中直接删除,而是改变了属性的类型,从数据属性变为访问器属性。

兼容性

标签:return   property   his   name   函数   obj   rgba   UNC   一个   

原文地址:https://www.cnblogs.com/flyover/p/14158320.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!