aja*_*221 44 javascript function undefined parameter-passing
我想在多参数函数上传递'undefined'的值但不省略参数.
"没有省略参数"是什么意思.我的意思是我们不应该只省略parm2这个例子:
function myFunction (parm1, parm2) {}
myFunction("abc");
Run Code Online (Sandbox Code Playgroud)
这确实会做出parm2未定义的,但是我不允许这样做,因为我需要在省略的参数之后指定其他参数,所以前面的方法在我想做parm1未定义的情况下也行不通但是也想要此后的其他参数保持一个值.
我试过用以下方法解决问题:
myFunction( ,"abc"); //doesn't seem to work
Run Code Online (Sandbox Code Playgroud)
更新:
并且 «这现在可靠地起作用了.myFunction(undefined, "abc");
但是,值得一提的是:
设置变量
undefined被认为是一种不好的做法,我们应该使用null.
dbr*_*rin 12
更好的方法可能是Object使用命名属性传递,然后查找这些特定的属性值.这样您就不必依赖于参数的数量.
例:Object.dummy
bkb*_*oth 12
该void操作似乎是最常见的方式明确地得到undefined.
您可以在示例中使用它:
myFunction(void 0, "abc");
Run Code Online (Sandbox Code Playgroud)
它也是一种可靠的比较方法,可防止在旧的JavaScript环境undefined中undefined被意外覆盖:
var x;
if (x === void 0) {
// this will execute
}
Run Code Online (Sandbox Code Playgroud)