这个javascript成语是什么?

aku*_*001 4 javascript broccolijs

我正在浏览西兰花插件,我看到这条线很多.它是干什么用的?

function MyCompiler (arg1, arg2, ...) {
  if (!(this instanceof MyCompiler)) return new MyCompiler(arg1, arg2, ...);
  ...
};
Run Code Online (Sandbox Code Playgroud)

Guf*_*ffa 8

这样您就可以在有或没有new关键字的情况下使用它.

例如:

var comp = new MyCompiler();
Run Code Online (Sandbox Code Playgroud)

要么:

var comp = MyCompiler();
Run Code Online (Sandbox Code Playgroud)

如果将其称为函数,它将使用new关键字调用自身并返回实例.