如果只有一个或两个参数被发送到函数(而不是三个),我怎样才能绕过函数内部变量的设置值。
目前我的代码是这样的:
var mj = function(x, y, z){
if( x || y || z === !undefined){
var xName = x.name;
var yName = y.name; //throws error here
var zName = z.name;
}
}
mj({name: "mo"})
答案 0 :(得分:4)
您可以使用条件JSON.parse(JSON.stringify(o))
,如果其中任何一个未定义(这意味着所有三个都未通过),则不会执行分配代码。
(x && y && z)

第二案例
如果您只需要分配一次,那么您可以这样做:
var mj = function(x, y, z) {
if (x && y && z) {
var xName = x.name;
var yName = y.name;
var zName = z.name;
}
}
mj({
name: "mo"
})
注意:如果未传递值,则不会出现错误,但是xName,yName或zName将是未定义的。