javascript - ES6获取默认参数/参数

标签 javascript ecmascript-6 default-arguments

如何在不使用参数变量的情况下动态获取默认参数/参数的值?

function someFunc(param1 = 'value', param2 = 'value') {
    console.log(arguments.length);
    console.log(arguments[0]);
}

someFunc(); //0 undefined

最佳答案

我想做同样的事情,以便为类的实例分配几个属性。

这种方法可能对您没有帮助,因为它使用一个对象参数而不是两个参数,仍然值得一提:



class MyClass{
  constructor(params={param1:3.1415, param2:'Hello'}){
    //*assign* effectively destructures the params arg
    Ojbect.assign(this,params);
  }
}


同样,您的示例如下所示:


function someFunc(params = {param1:'value', param2: 'value'}) {
    console.log(Object.keys(params).length);
    console.log(params['param1']);
}


请注意,这种方法要求您的参数是一个对象,并且给定两个参数之一,则另一个参数将不会出现在默认对象中。

关于javascript - ES6获取默认参数/参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29889692/

相关文章:

php - 使用 php/javascript 跟踪用户并禁止多个窗口/选项卡

javascript - 我可以将完整的存储对象从容器发送到 Action 创建者(React/Redux)吗

javascript - es6使用常量解构对象

javascript - 将选项传递给 ES6 模块导入

c++ - 模板参数默认为后一个

javascript - 使用 mocha 重用场景

javascript - 填充权不适用于最后一个 child

javascript - 使用 ES6 模块而不是揭示模块模式的额外优势是什么?

c++ - 具有不同默认参数值的函数

c++ - C : MSDN says that "default arguments can be provided for pointers to functions", 但这是真的吗?