我通常设置这样的对象属性,
// Boolean this.listening = config.listening || true;
但是config.listening是true或false,在这种情况下this.listening将始终为true,因为如果config.listening为false,则它将等于true.
在javascript中是否存在if isset函数来检查它是否存在而不是它等于什么?
解决方法
您可以像这样使用三元(条件)运算符:
this.listening = config.listening === false ? false : true;
如果config.listening为false,则this.listening设置为false.如果它是任何其他值,则将其设置为true.
如果要检查是否已定义,可以使用:
this.listening = typeof config.listening !== "undefined"
参考文献:
> https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Conditional_Operator