带有可选参数的javascript构造函数

zil*_*anu 9 javascript ecmascript-6

我现在正在学习 Javascript 并且来自 Java 的背景。在 Java 中,我们重载了构造函数,其中,在编译时,编译器将决定要调用哪个版本的构造函数。

在 Javascript 的情况下,我们只能有一个构造函数。在这种情况下,如果构造函数有 3 个参数,如何只传递第三个参数。

前任:

class Addition {
 constructor(a,b,c){
   console.log(a+B+c);
 }
}

Addition obj = new Addition(null, 40, null);
//or
Addition onj2 = new Addition(undefined, undefined, 45);
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法在 Javascript 中做到这一点?

31p*_*piy 13

您可以使用 EcmaScript 的参数解构和默认值来实现这一点。此外,您需要使用const(or let, or var) 关键字来创建变量。

class Addition {
  constructor({a = 0, b = 0, c = 0}) {
    console.log(a + b + c);
  }
}

const obj = new Addition({a: null, b: 40, c: null});
const onj2 = new Addition({c: 45});
Run Code Online (Sandbox Code Playgroud)

  • @zilcuanu——对于前者,你不能只传递 `c` 的值,但对于后者,你可以。 (2认同)

Akh*_*ind 1

我希望这能解决你的问题:D

class Addition {
 constructor(a=null,b=null,c=null){
   console.log(a+b+c);
 }
}

var obj = new Addition(null, 40, null);
var onj2 = new Addition(undefined, undefined, 45);
Run Code Online (Sandbox Code Playgroud)