【发布时间】:2015-10-05 06:44:47
【问题描述】:
我目前正在研究 Mikowski 和 Powell 的单页 Web 应用程序。在完成第 1 章中的简单教程后,我很困惑为什么在 toggleSlider()、onClickSlider() 和 initModule() 函数中需要 return true 和 return false。
这样做的额外好处是什么?当我在没有return true 和return false 的情况下运行以下代码时,它的工作方式与返回语句完全相同。
在什么情况下,有这些返回语句实际上是有益和必要的?
var spa = (function($) {
var configMap = {
extended_height: 434,
extended_title: 'Click to retract',
retracted_height: 16,
retracted_title: 'Click to extend',
template_html: '<div class="spa-slider"><\/div>'
},
$chatSlider,
toggleSlider, onClickSlider, initModule;
toggleSlider = function() {
var slider_height = $chatSlider.height();
if (slider_height === configMap.retracted_height) {
$chatSlider
.animate({
height: configMap.extended_height
})
.attr('title', configMap.extended_title);
return true;
} else if (slider_height === configMap.extended_height) {
$chatSlider
.animate({
height: configMap.retracted_height
})
.attr('title', configMap.retracted_title);
return true;
}
console.log("Nothing to extend or retract. No events fired.");
return false;
};
onClickSlider = function(event) {
console.log("Calling onClickSlider click event");
toggleSlider();
return false;
};
initModule = function($container) {
$container.html(configMap.template_html);
$chatSlider = $container.find('.spa-slider');
$chatSlider
.attr('title', configMap.retracted_title)
.click(onClickSlider);
return true;
};
return {
initModule: initModule
};
}(jQuery));
jQuery(document).ready(
function() {
spa.initModule(jQuery('#spa'));
}
);
body {
width: 100%;
height: 100%;
overflow: hidden;
background-color: #777;
}
#spa {
position: absolute;
top: 8px;
left: 8px;
bottom: 8px;
right: 8px;
border-radius: 8px 8px 0 8px;
background-color: #fff;
}
.spa-slider {
position: absolute;
bottom: 0;
right: 2px;
width: 300px;
height: 16px;
cursor: pointer;
border-radius: 8px 0 0 0;
background-color: #f00;
}
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div id="spa">
<div class="spa-slider"></div>
</div>
</script>
【问题讨论】:
-
据我所知,这些返回值毫无用处。我怀疑这只是作者的个人风格,他喜欢有明确的返回值。
toggleSlider使用返回值来指示它是否执行了任何操作,这对于在控制台中进行调试可能很有用,尽管它也出于相同目的使用console.log()。 -
@nhgrif 我很抱歉。我收回对代码审查的引用。我的观点仍然存在,尽管这似乎也不是这里的主题,因为它不是在询问发布者在找到解决方案时遇到困难的特定问题。
-
@Claies 那么我建议找到一个接近的理由并投票支持它,或者否决它?您确定这个问题对于 SO 来说是题外话,但它的反对票为零,接近票为零。对我来说,这个问题似乎非常适合 SO,真的。
-
@nhgrif -- 我对我的问题的结构表示歉意。最近才开始使用 SO。以后会多加注意。感谢您的帮助和反馈。最好的!
标签: javascript c# jquery