调用函数两次

Calling a function twice?

本文关键字:两次 函数 调用      更新时间:2023-09-26
Jade.compileFile(layout, { pretty: false })(locals);

谁能解释一下这段代码?

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

这个函数被调用了两次吗?

在.compileFile()上创建Jade文档:

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

在大多数JS模板引擎中,都有一个编译函数来解析原始模板字符串,并返回一个模板函数。

当用data (locals)调用函数时,它返回一个包含数据的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>'

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

为了演示这一点,您可以这样写:
var func = Jade.compileFile(layout, { pretty: false });
func(locals);

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