命名对象属性函数

时间:2011-12-22 17:18:13

标签: javascript

render: function render(context, partials) {
  return this.r(context, partials);
},

从Twitter的新hogan.js库中获取此代码来演示该问题;两次命名函数的目标是什么?

3 个答案:

答案 0 :(得分:7)

如果愿意,函数render将能够call itself via render(),但render()无法访问anywhere else

此外,在堆栈跟踪中,您会看到render作为函数名称,而不是anonymous function

答案 1 :(得分:0)

递归电话需要它。

答案 2 :(得分:0)

render 的第一次出现是存储函数的字段的名称,以便您可以通过

调用该函数
object.render(context, partials);

第二个渲染命名函数本身。然后,调试工具显示 render 而不是 function

第二个可能的原因是该函数可以递归调用自身。

var render = function render(n) {
    console.log("render");
    if (n < 1)
      render(n + 1);
};
render(0);

编辑:抱歉,我在第一次修订时写错了。