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, 'b', {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
(0)

相关推荐

  • 一探 Vue 数据响应式原理

    本文写于 2020 年 8 月 5 日 相信在很多新人第一次使用 Vue 这种框架的时候,就会被其修改数据便自动更新视图的操作所震撼. Vue 的文档中也这么写道: Vue 最独特的特性之一,是其非侵 ...

  • Java中static关键字的使用

    static关键字 static表示"静态"的意思,可以用来修饰成员变量和成员方法,static的主要作用在于创建独立于具体对象的域变量或者方法. 简单理解: 被static关键字 ...

  • 前端面试 vue 部分 (2)——Vue是如何实现双向绑定的

    数据的双向绑定 当数据发生变化,ViewModel能够监听到数据的这种变化,然后通知到对应的视图做自动更新,而当用户操作视图,ViewModel 也能监听到视图的变化,然后通知数据做改动,这实际上就实 ...

  • 理解vue数据驱动

    vue是双向数据绑定的框架,数据驱动是他的灵魂,他的实现原理众所周知是Object.defineProperty方法实现的get.set重写,但是这样说太牵强外门了.本文将宏观介绍他的实现 使用vue ...

  • 判断getter/setter方法

    在 Mybatis的源码中,有 类 PropertyNamer 判断 getter/setter 方法 : PropertyNamer { PropertyNamer() { } /** 获取方法的属 ...

  • property代替setter和getter

    Book: (, name, price): ._name = name ._price = price name(): ._name name(, name): ._name = name pric ...

  • EXCEL Range用法集

    来源:博客园 网址:https://www.cnblogs.com/aademeng/articles/12952659.html 标签:Execl,Range,用法 收藏:株野 作者:天涯海角路 日 ...

  • 地支藏干用法

    地支藏干歌诀 子宫癸水在其中,丑癸辛金己土同: 寅宫甲木兼丙戊,卯宫乙木独一苗, 辰藏乙戊三分癸,巳中庚金丙戊丛: 午宫丁火己土同,未宫乙己丁共宗: 申位庚金壬水戊,酉宫辛金独丰隆: 戌宫辛金及丁戊, ...

  • 身和体的定义及用法

    ​易山/文 盲派命法,身旺不旺无所谓,体旺就行,体旺也能做事. 身:指日干. 体:指印比食伤禄(除财官以外的神). 身和体是取得财官的工具. 我的体能制住财官,我能踏实干事,能担当.制不住财官,偷奸耍 ...

  • 中学英语16种时态完美精讲(每一种用法配一例句)

    中学英语时态共有16种,分别是一般现在.一般过去.一般将来.过去将来时,以及这四者的进行时.完成时和完成进行时. 在不同的时态中,动词都会发生相应变化,时间状语的运用也会有所不同.究竟怎样区分不同时态 ...

  • 附子理中丸、桂附理中丸、枳实理中丸有什么区别?用法都在这了

    附子理中丸、桂附理中丸、枳实理中丸有什么区别?用法都在这了

  • 2.6 多条件“或”函数or的用法

    多条件"或"函数or的用法

  • 解题技巧:梳理总结高考导数的十四种用法

    文章行文思路如下: ..... 备考策略:高考数学最后一课(共8篇) 普通中学拔尖创新人才培养的关键路径与现实思考 数学编题那点事?--以教材为起点的试题设计