javascript对象的getter

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Functions/get

get 语法将对象属性绑定到查询该属性时将被调用的函数。

使用场景:有时需要允许访问返回动态计算值的属性,或者你可能需要反映内部变量的状态,而不需要使用显式方法调用。

语法形式:

{get prop() { ... } }

其中prop表示要绑定到给定函数的属性名。

使用get语法时应注意以下问题:

  • 可以使用数值或字符串作为标识;
  • 必须不带参数

示例:

const obj = {
    numbers: [1, 2, 3],
    get latestNumber() {
        if (this.numbers.length === 0) {
            return undefined
        }
        return this.numbers[this.numbers.length - 1]
    }
}

// 将latestNumber作为obj对象的属性访问
console.log(obj.latestNumber)

输出:
在这里插入图片描述

示例:getter作为函数访问会出错

const obj = {
    numbers: [1, 2, 3],
    get latestNumber() {
        if (this.numbers.length === 0) {
            return undefined
        }
        return this.numbers[this.numbers.length - 1]
    }
}

// 将latestNumber函数访问出错
console.log(obj.latestNumber())

运行出错:
在这里插入图片描述

示例:不能给getter赋值

const obj = {
    numbers: [1, 2, 3],
    get latestNumber() {
        if (this.numbers.length === 0) {
            return undefined
        }
        return this.numbers[this.numbers.length - 1]
    }
}

// 不能给latestNumber赋值
obj.latestNumber = 10

运行出错:
在这里插入图片描述

示例:用delete删除getter

const obj = {
    numbers: [1, 2, 3],
    get latestNumber() {
        if (this.numbers.length === 0) {
            return undefined
        }
        return this.numbers[this.numbers.length - 1]
    }
}

console.log(obj.latestNumber)

console.log('----------------')

// 用delete删除getter
delete obj.latestNumber
// 删除getter以后,值是undefined
console.log(obj.latestNumber)

运行输出:
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值