2014-12-06 57 views
4

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

function MyCompiler (arg1, arg2, ...) { 
    if (!(this instanceof MyCompiler)) return new MyCompiler(arg1, arg2, ...); 
    ... 
}; 
+1

它构建实例时将防止遗忘“新”,将直接调用转变为“新”调用(它将全局变为实例本身)。 – dandavis 2014-12-06 23:36:18

回答

8

这样就可以使用它或不带new关键字。

例如为:

var comp = new MyCompiler(); 

或:

var comp = MyCompiler(); 

如果你把它作为一个功能,它会调用自身与new关键字并返回该实例。