javascript - 带有 JSON 对象的 ES6 getter setter

标签 javascript json ecmascript-6

根据这个文档

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/set

你可以这样做

var o = {
  set current (str) {
    this.log[this.log.length] = str;
  },
  log: []
}

但是如果我希望 current 变量成为对象并且我想对该对象的属性执行 setter 怎么办?

下面的好像不行

var o = {
  set current.myVal (str) {
    this.log[this.log.length] = str;
  },
  log: []
}

正确的做法是什么?我读到你可以使用 expression 但没有示例。

** 更新 1 **

下面的答案之一是正确的,但如果它是 class 呢?

class o {
  set current.myVal (str) {
    this.log[this.log.length] = str;
  }
}

下面我试过了,没用

class o {
  current: {
    set myVal(str) {
      o.log.push(str);
    }
  }
}

最佳答案

你好像在找

var o = {
  current: {
    set myVal(str) {
      o.log.push(str);
    }
  },
  log: []
};

但这可能是个坏主意。

关于javascript - 带有 JSON 对象的 ES6 getter setter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36029644/

相关文章:

php - 如何使用 PHP 更新数据库中员工的电话号码

javascript - 使用 es6 将嵌套对象中的 props 合并为一个对象

Javascript:对 Chrome 控制台中表格行的所有值求和

javascript - 如何在 forEach 循环后填充数组

javascript - D3 Edge Bundling 生成 svg 的边缘全长

java - 如何以 ISO 格式返回 Date 对象而不是 Java 中的时间戳?

json - 使用 F# 解析 JSON(不是序列化)

javascript - 在哪里可以找到 Traceur(ES6 转换器)运行时?

javascript - JS regex positive look behind * 应该什么时候不贪心?

javascript - 如何自动聚焦于新创建的输入。 DOM