javascript - 默认情况下具有一键的对象(getter/setter)

标签 javascript ecmascript-6

我知道,随着所有新的 ECMAScript6 内容的出现,我们正在发生一些令人惊奇的事情。我的目标是做这样的事情,我不知道是否可能:

var angEl = {
  get(): blah,
  scope: this.scope(),
  injector: this.injector()
}

现在我这样做:

var angEl = blah;
var angElProps = {
  scope: angEl.scope(),
  injector: angEl.injector()
}

只是想知道是否有任何很酷的新时尚方法可以实现这一目标。

最佳答案

我正在读两件事,你想分配值和方法。

在 ES5 中执行此操作的最佳方法是将其值放入构造函数中,该构造函数将在运行 new MyObject(value) 时运行。然后将方法分配给原型(prototype)。如果将方法放在构造函数中,可能会导致一次又一次创建相同函数的问题。

ES5

var MyObject = function(value){
    this.value = value;
}

MyObject.prototype.func = function(){};

当您不打算利用手动编辑对象原型(prototype)而只想要一个类似类的对象时,ES6 具有更清晰的语法。

ES6

class MyObject{
 constructor(value){
   this.value = value;
 }
 func(){}
}

编辑:另外,ES6 内置了 get 和 set。

class MyObject{


     func(){}
     set value(value){
         this._value = value;
     }
     get value(){
         return this._value;
     }

}

关于javascript - 默认情况下具有一键的对象(getter/setter),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31123515/

相关文章:

javascript - 单选表单值未显示?

javascript - 图像单击 - 打开对话框或弹出窗口

javascript - 为什么 EventTarget 子类实例会丢失名称?

javascript - 删除本地存储

javascript - 以编程方式单击标记和 map

c# - 我如何使用javascript获取 session 值

javascript - express.js 中间件中的空参数对象

JavaScript 二进制归约函数 : why is 16 + 0 returning 0?

javascript - 如何比较对象数组和字符串数组?

javascript - Js RegEx 不识别重音字母 (utf-8)