jade テンプレート エンジンのソース コードを参照していて、このステートメントの意味を理解しようとしています。
インスタンス化を試み、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();