对象(Javascript)中的 get 和 function 有什么区别?

问题描述 投票:0回答:2

我很难理解为什么在 JavaScript 对象中有两种不同的方法来执行完全相同的操作。

这里我有一个对象,它的“log”属性中包含一个数组。 obj 的“最新”属性存储数组的最后一项,这是在函数的帮助下完成的。

const obj = {
  log: ['a', 'b', 'c'],
  latest: function () {
    return this.log[this.log.length - 1];
  },
};

console.log(obj.latest());

但是在教程的后面引入了关键字 Get,它的存在有点让我困惑,因为它在这里做了完全相同的事情:

const obj = {
  log: ['a', 'b', 'c'],
  get latest() {
    return this.log[this.log.length - 1];
  },
};

console.log(obj.latest);

他们解释说 get 关键字提供了更简单的语法,允许像常规属性 (obj.latest) 一样调用“最新”,而不是作为方法的 obj.latest()。

但是除了简化语法之外还有什么其他的吗? 谢谢

javascript object getter
2个回答
0
投票

A

Function
就是你想要的任何东西,一些参数,一些代码,一些返回或没有这些。

但是

get
函数,严格要求无参数,有返回值。这是一个
computed property
,更像是一个财产。


0
投票

来自MDN解释

使用get关键字和Object.defineProperty()有类似的地方 结果,两者在使用时存在细微差别 课程。

当使用 get 时,属性将被定义在实例的 原型,当使用 Object.defineProperty() 时,该属性将是 在其所应用的实例上定义。

Get关键字最好用在中。

© www.soinside.com 2019 - 2024. All rights reserved.