如何为通过JavaScript中的对象文字模拟的命名函数参数设置默认值?

宝石蓝

为了方便阅读,我想在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'”。

提前致谢!

丹尼斯·施塔特诺夫(Dennis Shtatnov)

请注意,如果您想要多个默认参数,并且提供了一些默认参数,则先前的答案将不起作用:

这样做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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何为命名函数参数设置默认值?

如何为星号参数设置默认值?

如何为DateTime参数设置默认值

如何为可选的Range参数设置默认值?

如何为ChoiceParameterDefinition参数设置默认值

是否可以在PowerShell中的许多函数调用中为命名参数设置默认值?

如何在Javascript中为可选参数设置默认值?

如果为空,如何为参数设置默认值?

如何为功能类型的可选位置参数设置默认值?

从python中的参数设置参数默认值

为Rcpp函数中的参数设置默认值NULL

如何在关键字中为可选列表参数设置默认值

如何在Scala中为varargs参数设置默认值?

如何在程序定义的架构中为参数设置默认值?

如何在Rails中为参数设置默认值?

如何在javascript函数中为参数的特定默认值设置值

SQL函数-将date参数设置为默认值会破坏函数

从元组参数设置元素参数的默认值

Android:如何为参数变量设置默认值

为哈希表参数设置默认值

如何根据URL参数设置下拉菜单的默认值?

设置函数对象参数的key的默认值

使用参数解构从构造函数默认值设置javascript对象属性

KOTLIN:如何为函数中的泛型类型参数分配默认值?

如何为默认参数设置编写Shell脚本

如何确定函数参数是自动设置为默认值还是在C ++中显式设置?

在函数中设置List <string>类型的参数的默认值

如何在 Javascript 中为命名参数使用默认值

如何为const设置默认值?