ES6 获取默认 parameters/arguments
ES6 Get default parameters/arguments
如何在不使用参数变量的情况下动态获取默认 parameters/arguments 的值?
function someFunc(param1 = 'value', param2 = 'value') {
console.log(arguments.length);
console.log(arguments[0]);
}
someFunc(); //0 undefined
你不知道。这样想。老方法如何获取默认值?
function someFunc(param1, param2) {
param1 = param1 || 'value';
param2 = param2 || 'value';
console.log(arguments.length);
console.log(arguments[0]);
}
someFunc(); //0 undefined
最好的办法是将默认值存储在变量中,并在运行时进行比较。但这有点毫无意义。
我想做同样的事情,以便为我的 class.
的实例分配几个属性
这种方法可能对您没有帮助,因为它使用一个 object 参数而不是两个参数,仍然值得一提:
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']);
}
请注意,此方法要求您的参数是一个对象,并且给定两个参数之一,另一个不会出现在默认对象中。
如何在不使用参数变量的情况下动态获取默认 parameters/arguments 的值?
function someFunc(param1 = 'value', param2 = 'value') {
console.log(arguments.length);
console.log(arguments[0]);
}
someFunc(); //0 undefined
你不知道。这样想。老方法如何获取默认值?
function someFunc(param1, param2) {
param1 = param1 || 'value';
param2 = param2 || 'value';
console.log(arguments.length);
console.log(arguments[0]);
}
someFunc(); //0 undefined
最好的办法是将默认值存储在变量中,并在运行时进行比较。但这有点毫无意义。
我想做同样的事情,以便为我的 class.
的实例分配几个属性这种方法可能对您没有帮助,因为它使用一个 object 参数而不是两个参数,仍然值得一提:
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']);
}
请注意,此方法要求您的参数是一个对象,并且给定两个参数之一,另一个不会出现在默认对象中。