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 长度仅使用一次。我认为在适当的地方使用它更具可读性,工作量更少。在同行签入审查中,我因为仅仅为了一些可感知的易读性而创建变量而被责骂是对的 节被多次使用,并且需要额外的逻辑,所以它很有意义 模型除了强制解释器创建一个新指针之外什么都不做,为什么要在包含范围内可用时传递它呢 如果它使代码更易读,或者优化了某些东西,那么我会说这是值得的