I have this function:
function callWS(input) {
var output = {
"type" : input["type"] || "",
"mark" : input["mark"] || "",
"model" : input["model"] || "",
"year" : input["year"] || ""
};
return output;
}
我希望用户可以使用多种方式调用这个函数:
callWS(); ==> {"type":"","mark":"","model":"","year":""}
callWS({"type":"moto"}); ==> {"type":"moto","mark":"","model":"","year":""}
callWS({"type":"moto","mark":"audi"}); ==> {"type":"moto","mark":"audi","model":"","year":""}
如果某个参数未定义,将其初始化为空字符串。目前我的函数在第一种情况下不起作用,但在其他情况下可以正常工作。
当我像callWS()
这样调用它时,我会得到:
Uncaught TypeError: Cannot read property 'type' of undefined
说实话,我不知道为什么对于第二和第三种情况可以正常工作,但我也需要让它对于第一种情况也能正常工作。我知道如果我使用:
if (input["type"])
使用will do the trick,但我需要一种内联解决方案。这可行吗?
callWS
函数的开头添加input = input || {}
,以便为input
变量提供默认值。请注意,这不会更改原始意思,只是使语言更加通俗易懂。 - hindmostfunction callWS(input = {})
。 - user663031