簡體   English   中英

ES6 getter setter和JSON對象

[英]ES6 getter setter with JSON object

根據這份文件

https://developer.mozilla.org/zh-CN/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: []
};

但這可能是一個壞主意。

我認為這不是一個好主意,但是從理論上講,您可以使用o.current的setter返回一個對象:

 var o = { get current() { var self = this; return { set myVal(str) { self.log[self.log.length] = str; } } }, log: [] }; o.current.myVal = 1234; o.current.myVal = 5678; document.write(o.log) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM