Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在ejs模板中使用闭包_Javascript_Underscore.js - Fatal编程技术网

Javascript 在ejs模板中使用闭包

Javascript 在ejs模板中使用闭包,javascript,underscore.js,Javascript,Underscore.js,只是想知道在下划线模板中使用闭包是否有任何价值…比如说跟踪计数器之类的东西。这里有一个简单的例子来说明我的意思: <% (function( models ){ var length = models.length-1, section = ""; _.each( models, function ( item, index ) { if (index === 0) { section = "top"; } e

只是想知道在下划线模板中使用闭包是否有任何价值…比如说跟踪计数器之类的东西。这里有一个简单的例子来说明我的意思:

<% 
 (function( models ){
  var length = models.length-1,
      section = "";
    _.each( models, function ( item, index ) {
        if (index === 0) {
          section = "top";
        } else if (index === length) {
          section = "bottom";
        } else {
          section = "center";
        }
    %>
  <div class="container">
    <div class="gradiantDiv <%= section %>content">
      <a href="/#customer/<%= item._id %>">
        <address>
          <strong><%= item.name %></strong><br>
          <%= item.addr1 %><br>
          <%= item.city %>, <%= item.state %> <%= item.zip %><br>
          <abbr title="Phone">P:</abbr> <%= item.phone %>
        </address>
      </a>
    </div>

    <div class="gradiantDiv <%= section %>action">
        <i class="icon-chevron-right"></i>
    </div>
  </div>
<% 
    });
})( models );
%>
还是最好在u.each之前声明length和section等变量而不使用闭包?或者这有什么关系


谢谢

我个人不知道创建在模板之外没有意义的变量有什么好处

我们通常在变量优化或使代码更可读时创建变量

e、 g

长度仅使用一次。我认为在适当的地方使用它更具可读性,工作量更少。在同行签入审查中,我因为仅仅为了一些可感知的易读性而创建变量而被责骂是对的

节被多次使用,并且需要额外的逻辑,所以它很有意义

模型除了强制解释器创建一个新指针之外什么都不做,为什么要在包含范围内可用时传递它呢

如果它使代码更易读,或者优化了某些东西,那么我会说这是值得的