在 JavaScript 中设置默认可选值通常是通过||
字符来完成的
var Car = function(color) {
this.color = color || 'blue';
};
var myCar = new Car();
console.log(myCar.color); // 'blue'
var myOtherCar = new Car('yellow');
console.log(myOtherCar.color); // 'yellow'
之所以有效,是因为color
是undefined
并且undefined || String
始终是String
. 当然,String || undefined
反之亦然String
。当两个Strings
在场时,第一个获胜'this' || 'that'
的是'this'
。它不能按原样'that' || 'this'
工作'that'
。
问题是:如何使用布尔值实现相同的效果?
举个例子
var Car = function(hasWheels) {
this.hasWheels = hasWheels || true;
}
var myCar = new Car();
console.log(myCar.hasWheels); // true
var myOtherCar = new Car(false)
console.log(myOtherCar.hasWheels); // ALSO true !!!!!!
因为myCar
它有效,因为undefined || true
istrue
但正如您所见,它不适用于myOtherCar
因为false || true
is true
。true || false
改变顺序仍然没有帮助true
。
因此,我在这里遗漏了什么还是以下设置默认值的唯一方法?
this.hasWheels = (hasWheels === false) ? false: true
干杯!