我知道已经询问并回答了如何为javascript函数设置默认参数by Tilendor
我想知道我是否有一个包含一系列布尔值的函数
例如,一个名为“anAnimal”的函数。作为默认值,我将false值设置为三个属性。
飞,游,爬。
如果我只想向我的财产传递一个名为climb的属性,我该怎么办?
目前,在调用方法时,我必须为fly和swim传递false值,即使我已经将它们预定义为false。
这是我正在尝试的,我希望结果是真实而不是假
function anAnimal (fly = false, swim = false, climb = false) {
this.canFly = fly;
this.canSwim = swim;
this.canClimb = climb;
}
var cat = new anAnimal(true)
var theCat = 'This cat can climb: ' + cat.canClimb;
document.write(theCat);

答案 0 :(得分:1)
您可以传递对象而不是参数,并根据输入填充默认选项。
function anAnimal(obj) {
var defaults = {
fly: false,
swim: false,
climb: false
}
//copy the values of all enumerable own properties from one or more source objects to a target object.
Object.assign(defaults, obj);
//Assign the values
this.canFly = defaults.fly;
this.canSwim = defaults.swim;
this.canClimb = defaults.climb;
}
var cat = new anAnimal({
climb: true
});
var theCat = 'This cat can climb: ' + cat.canClimb;
document.write(theCat);
但我建议使用setters,setClimb()