在javascript中,我们经常会看到以下代码,以便在我们不关心忽略虚假值时设置默认参数。
function SomeObject (param) {
this.param = param || {};
}
有时,在阅读代码时,我会遇到以下变体:
function SomeObject (param) {
this.param = param = param || {};
}
有人可以向我解释这个用例吗?
答案 0 :(得分:4)
在此代码中:
function SomeObject (param) {
this.param = param = param || {};
}
进行两个单独的赋值:一个是param
局部变量(函数的实际参数),另一个是属性this
,无论发生什么。这两个不同的分配目标不相同。 (当然,他们会得到相同的价值,但他们在两个不同的地方放置价值。)
根据我的经验,看到为参数本身建立的简单默认值更为常见:
function whatever(x) {
x = x || {};
然而,在有意义的情况下分配对象属性并没有错。