我知道,随着所有新的 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/