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 || truetruemyOtherCarfalse || truetruetrue || falsetrue
したがって、ここで何か不足していますか、それともデフォルト値を設定する唯一の方法は次のとおりですか?
this.hasWheels = (hasWheels === false) ? false: true
乾杯!