Я в настоящее время работаю через Отдельные веб-приложения от Mikowski и Powell. Проработав простой учебник в главе 1, я смущен тем, почему необходимо return true
и return false
в функциях toggleSlider()
, onClickSlider()
и initModule()
.Зачем возвращать true или 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() '. – Barmar
@nhgrif Извиняюсь. Я отказываюсь от ссылки на обзор кода. Моя точка зрения по-прежнему стоит на том, что, похоже, это тоже не по теме, поскольку она не спрашивает о какой-то конкретной проблеме, на которой у постели проблемы с поиском разрешения. – Claies
@Claies Затем я рекомендую найти близкую причину и проголосовать за нее и, возможно, снизить ее? Вы уверены, что этот вопрос вне темы для SO, но у него есть нулевые нисходящие и нулевые близкие голоса. Для меня этот вопрос кажется совершенно прекрасным для SO, действительно. – nhgrif