1

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

<% 
 (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 );
%>

还是在 _.each 之前不使用闭包声明变量(如“length”和“section”)是否更好?或者这有关系吗?

谢谢!

4

1 回答 1

0

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

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

(例如

长度只使用一次。我认为在适当的位置使用它更具可读性和更少的工作。我在同行签到审查中被正确地责骂只是为了一些可理解的易读性而创建变量。

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

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

)

如果它使代码更清晰,或优化某些东西,那么我会说这是值得的。

于 2013-01-10T21:06:52.597 回答