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/

相关文章:

c++ - 我可以在前向声明中默认模板参数吗

javascript - 如何从 JSON 对象解析 HTML 标签

javascript - 使用 querySelectorAll 查找逗号分隔属性的匹配项

javascript - 单击加载 CSS 元素?

javascript - es6 代码在 es5 中被破坏

c++ - 模板特化中的默认实参参数

c++ - 在 C++ 中,只有默认参数的构造函数是默认构造函数吗?

javascript - 有没有办法让 IE 在内容更新时自动重新加载选项卡?

javascript - ES6 promise 错误处理

javascript - 现在对象属性是否已排序?