我正在浏览玉模板引擎源代码,并试图弄清楚这个语句的含义。
我知道它会尝试实例化options.compiler
,如果实例化失败Compiler
,但下一部分让我感到困惑......这是说调用parser.parse
并将返回的值声明为变量吗?如果是这样,为什么最右边的括号是选项?
var compiler = new (options.compiler || Compiler)(parser.parse(), options)
, js = compiler.compile();
.
如果有帮助,这里有更多上下文
function parse(str, options){
try {
// Parse
var parser = new Parser(str, options.filename, options);
// Compile
var compiler = new (options.compiler || Compiler)(parser.parse(), options)
, js = compiler.compile();