![](/img/trans.png)
[英]Change default value of an attribute in constructor class in Javascript
[英]Default enum value in javascript class constructor
我有一个简单的类,我试图弄清楚如何在构造函数中设置默认值:
var Foo = function(bar = Foo.someEnum.VAL1) {
this.bar = bar;
someEnum = {VAL1 : 1, VAL2: 2};
}
并像这样使用它:
var myFoo = new Foo(Foo.someEnum.VAL1);
但这显然是错误的。 设置默认枚举值的正确方法是什么,还是我需要将默认值设置为null,然后在构造函数中检查null并进行相应设置?
需要说明的是,bar是Foo类的枚举。 该类中还有其他未显示的属性。 此外,更新了类代码。
如果要将bar设为可选参数,可以尝试以下方法:
function Foo(bar) {
this.bar = bar || Foo.enum.VAL1; //If bar is null, set to enum value.
}
//Define static enum on Foo.
Foo.enum = { VAL1: 1, VAL2: 2, VAL3: 3 };
console.log(new Foo().bar); //1
console.log(new Foo(Foo.enum.VAL3).bar); //3
您是否只想在函数中定义bar
?
var Foo = function() {
var bar = {VAL1 : 1, VAL2: 2};
}
或空白的起始对象:
var Foo = function() {
var bar = {};
}
还是要从传递给函数的参数中进行设置?
var Foo = function(barIn) {
var bar = barIn;
}
另一个选择-根据传入的值创建对象(枚举):
var Foo = function(val1, val2) {
var bar = {VAL1 : val1, VAL2: val2};
}
可能性还在继续,但是尚不清楚您要实现的目标。
我不确定您要做什么,但也许就是这个...
var Foo = function (bar = 1) {
this.bar = bar;
}
Foo.VAL1 = 1;
Foo.VAL2 = 2;
现在您可以执行以下操作:
foo1 = new Foo();
alert(foo1.bar); //alerts 1;
foo2 = new Foo(Foo.VAL2);
alert(foo1.bar); //alerts 2;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.