getter和setter以及defineProperty的用法

发布时间:2021-02-25 发布网站:前端之家 F2er.com
前端之家收集整理的这篇文章主要介绍了getter和setter以及defineProperty的用法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

getter 和 setter 和 defineProperty

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

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

    const 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)

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

总结


以上是前端之家为你收集整理的getter和setter以及defineProperty的用法全部内容,希望文章能够帮你解决getter和setter以及defineProperty的用法所遇到的程序开发问题。

如果觉得前端之家网站内容还不错,欢迎将前端之家网站推荐给前端开发程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。