调用两次函数?

时间:2015-08-19 21:18:46

标签: javascript pug

Jade.compileFile(layout, { pretty: false })(locals);

有人可以解释一下这段代码吗?

我知道此代码行使用Jade Template Engine方法compileFilelayout是源路径,pretty是传递给compileFile的选项。 locals是一个对象。

这个函数被调用两次还是什么?

3 个答案:

答案 0 :(得分:5)

在.compileFile()上形成Jade docs

  

返回从包含locals的对象生成html的函数

在mose JS模板引擎中,有一个编译函数可以解析原始模板字符串,并返回一个模板函数。

当使用数据(本地人)调用函数时,它返回包含数据的HTML字符串。

来自Jade docs的代码示例:

var jade = require('jade');

// Compile a function
var fn = jade.compileFile('path to jade file', options);

// Render the function
var html = fn(locals);
// => '<string>of jade</string>'

答案 1 :(得分:3)

Jade.compileFile方法返回一个单独的函数,然后使用参数locals调用该函数。

为了证明这一点,您可以选择写:

var func = Jade.compileFile(layout, { pretty: false });
func(locals);

答案 2 :(得分:0)

我不知道Jade模板引擎,但第一次调用似乎返回一个函数。然后使用locals参数调用返回的函数。对不起,如果不是正确的答案。