我想在我的JavaScript函数中使用命名参数(通过对象文字进行模拟)以简化可读性。当我明确传递参数时,我编写的代码可以正常工作,但是我在尝试设置默认值时遇到了麻烦,因此不仅可以通过myFunction({someBoolean:true})或myFunction来调用我的函数()表示默认为someBoolean:false。
myFunction: function({myArgs}){
myArgs.someBoolean = myArgs.someBoolean || false;
if (myArgs.someBoolean) {
[do stuff]
}
[do other stuff]
},
当我调用myFunction({someBoolean:true})时,此方法工作正常,但是当我调用myFunction()时,出现“未捕获的TypeError:无法读取未定义的属性'someBoolean'”。
提前致谢!
最佳答案
请注意,如果您想要多个默认参数,并且提供了一些默认参数,则先前的答案将不起作用:
进行myFunction({otherArg: 'hello'})
不一定会将myArgs.someBoolean
设置为false。
而是应在以下更改中对其进行更改:
myFunction: function(myArgs){ // Switch to regular argument vs {myArgs}
myArgs = myArgs || {}; // Make sure it provided
myArgs.someBoolean = myArgs.someBoolean || false;
myArgs.otherArg = myArgs.otherArg || 'defaultValue'
if (myArgs.someBoolean) {
[do stuff]
}
[do other stuff]
},
然后可以使用以下命令调用:
something.myFunction({someBoolean: true, otherArg: '...'})