假设你有一个简单的课程:
class Example {
constructor(options) {
this.active = options.active || true;
}
}
如何在构造函数中将this.active
初始化为false?
我想将新的示例({active:false})传递给默认值为true。
答案 0 :(得分:3)
由于构造函数的编码方式,在选项中传递false
仍会将标记初始化为true
:
this.active = options.active || true; // always true
我会做这样简单的事情:
this.active = ("active" in options) ? options.active : true;
这样,如果传入的选项包含该标志的任何值,那么使用它;否则,如果未指定,请使用true
。
答案 1 :(得分:0)
这将使您的属性始终设置为true。阅读有关逻辑OR statement的更多信息。
this.active = options.active || true // true no matter what
您可以使用not equal value or not equal type
运算符!==
this.active = options.active !== false // true or false depending on options.active value and type
详细了解JavaScript Comparison Operators.
答案 2 :(得分:0)
您可以使用deconsturing的默认值。喜欢这个
constructor({active = false}) {
this.active = active
}
确保将一些对象传递给constuctor。