【发布时间】:2020-11-23 02:35:39
【问题描述】:
我有以下几点:
class example {
constructor (arg) {
this.value = arg.value
}
print () {
console.log(this.value);
}
}
var new_example = new example ({
value: 12,
})
new_example.print();
我如何设置一个默认值,比如 value = 10,这样,如果没有给出参数,它将打印 10。即:
var newer_example = new example ({
})
我尝试过类似的方法:
class example {
constructor (arg) {
this.value = (arg.value || 10)
}
print () {
console.log(this.value);
}
}
还有:
class example {
constructor (arg) {
this.value = ("undefined" != arg.value || 10)
}
print () {
console.log(this.value);
}
}
但找不到任何有用的东西。
【问题讨论】:
-
第一个解决方案的一个问题是它会在任何时候分配 10
arg.value是错误的,而不仅仅是未定义。例如,如果arg.value为 0 或空字符串,则分配 10,即使您可能需要这些值。 -
第一种方案的另一个问题是,如果
arg未定义,arg.value会抛出异常。 -
抛出异常是什么意思?
-
它会抛出异常,因为
undefined没有.value属性。尝试在控制台中运行undefined.value,您将看到错误消息“无法读取未定义的属性'值'”。
标签: javascript class object arguments default