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
。2 つ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 !!!!!!
isがmyCar
あるため機能しますが、ご覧のとおり、 isがあるため機能しません。順序を変更しても、そのままでは役に立ちません。undefined || true
true
myOtherCar
false || true
true
true || false
true
したがって、ここで何か不足していますか、それともデフォルト値を設定する唯一の方法は次のとおりですか?
this.hasWheels = (hasWheels === false) ? false: true
乾杯!