为了方便阅读,我想在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: '...'})
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句