"> -6ren">
gpt4 book ai didi

javascript - 在 underscorejs 模板中使用闭包

转载 作者:行者123 更新时间:2023-11-28 09:40:55 25 4
gpt4 key购买 nike

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

<% 
(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”这样的变量而不使用闭包会更好吗?或者这有什么关系吗?

谢谢!

最佳答案

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

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

(例如

长度仅使用一次。我认为就地使用它更具可读性并且工作量更少。在同行 checkin 审查期间,我因为仅仅为了一些可感知的易读性而创建变量而受到了正确的责备。

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

models 除了强制解释器创建一个新指针之外不做任何事情,为什么当它在包含范围内可用时还要传递它呢?

)

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

关于javascript - 在 underscorejs 模板中使用闭包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12434173/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com