经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » JavaScript » 查看文章
getter和setter以及defineProperty的用法
来源:cnblogs  作者:feshin  时间:2021/3/1 9:14:05  对本文有异议

getter 和 setter 和 defineProperty

  • getter:将对象属性绑定到查询该属性时将被调用的函数
    • 说人话就是,当你调用一个getter属性时会调用定义好的get函数,这个函数会返回一些运算结果的值(一般是用其他属性作为运算值),这个值就作为你调用的这个属性的值。
  • setter: 当尝试设置属性时,set语法将对象属性绑定到要调用的函数
    • 说人话就是,当你设置一个setter属性的值时会调用定义好的set函数(可以传入参数),这个函数会将这个对象的其他属性设置为传入的参数计算过后的值。
  1. 使用defineProperty在现有对象上定义getter:

要随时将getter添加到现有对象上,使用Object.defineProperty()

  1. const o = { a:0 }
  2. Object.defineProperty(o, 'b', { get: function() {return this.a + 1}});
  3. console.log(o.b) // Runs the getter, which yields a + 1(which is 1)

  1. 使用defineProperty为当前对象定义setter
  1. const o = { a: 0 }
  2. Object.defineProperty(o, 'b', {set: function(x) { this.a = x/2; }});
  3. o.b = 10; // Runs the setter, which assigns 10 / 2 (5) to the 'a' property
  4. console.log (o.a) // 5

原文链接:http://www.cnblogs.com/feng-senzhang/p/14388880.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号