对象,其中一个键为默认值(getter/setter)
Object with one key as default (getter/setter)
我知道有了所有新的ECMAScript6,我们正在发生一些令人惊叹的事情。我的目标是做这样的事情,我不知道这是否可能:
var angEl = {
get(): blah,
scope: this.scope(),
injector: this.injector()
}
现在我这样做:
var angEl = blah;
var angElProps = {
scope: angEl.scope(),
injector: angEl.injector()
}
只是想知道是否有什么很酷的新时尚方式来接受这一点。
我读到两件事,你想要赋值和方法。
在ES5中实现这一点的最佳方法是将其值放入构造函数中,该构造函数将在运行新的MyObject(value)时运行。然后将这些方法分配给原型。如果你把这些方法放在构造函数中,它可能会导致同一个函数一次又一次地被创建的问题。
ES5
var MyObject = function(value){
this.value = value;
}
MyObject.prototype.func = function(){};
当您不打算手动编辑对象原型,只想要一个类状对象时,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;
}
}
不完全是es6,但听起来你想使用Object.defineProperty()或Object.defineProperties()之类的东西。例如:
var angEl = {};
Object.defineProperties(angEl, {
'scope': {
get: function() {
return this.scope;
},
set: function(val) {
this.scope = val;
},
value: //set to something
},
'injector': {
...
}
});
通过这种方式,您可以在不需要额外对象的情况下,在内部准确地定义如何与对象交互。
相关文章:
- 我的shareService在angular 2中发送值工作正常,但当我渲染我的另一个组件时,会获得默认值
- jquerydatetimepicker日期和时间应在框默认值中,而无需单击框
- 如果值为空,如何设置输入的默认值?jQuery
- 骨干模型默认值-todos.js示例中不必要的代码
- jquery日期选择器年份范围默认值
- Html5输入属性的默认值,如最小值、最大值、大小等
- 根据两个下拉列表的默认值禁用按钮
- 如何创建具有默认值的JavaScript对象字段?(AngularJS模型相关)
- Angularjs-设置不带ng选项的select的默认值
- jQuery Datepicker从日期开始设置默认值
- 如何设置浏览器打开的文件对话框的文件名(一些默认值)
- JQuery BlockUI鼠标加载光标没有't在Google Chrome中返回默认值
- Selectize选择默认值
- 在KeystoneJS中为Types.Money设置默认值
- 是否可以同时为一个元素的所有事件指定阻止默认值
- 防止在IE7中按回车键时出现默认值
- 如何覆盖jqGrid's语言默认值
- 如何为显示jquery滑块值的文本框设置默认值
- 为 getter 提供默认值,而不会在 Angular 2 模型类中导致堆栈溢出
- 对象,其中一个键为默认值(getter/setter)