Что должна возвращать функция.
Если функция после своего выполнения ничего не возвращает в основной поток программы - это плохая функция. После знакомства с JQuery я был очарован тем, что любая функция возвращает сам объект, в рамках которого она запущена. Что это дает? Самое главное - возможность последовательно выполнить ряд операций над одним и тем же объектом, в одну строчку.
Приведу пример:
x = parseInt(x);
y = parseInt(y);
x = isNaN(x) ? 0 : x;
y = isNaN(y) ? 0 : y;
this.x = x;
this.y = y;
}
coordinates.prototype = {
toString : function(){
return this.x+’ ‘+this.y;
},
plus : function(that){
this.x += that.x;
this.y += that.y;
return this; /* !!! */
},
minus : function(that){
this.x -= that.x;
this.y -= that.y;
return this; /*!!!*/
}
}
var v1 = new coordinates(10, 10);
var v2 = new coordinates(20, 20);
v1.plus(v2).plus(v2); // Здесь могли быть и другие операции
alert(v1);
Очевидно, что в некоторых случаях (в данном примере это toString), вернуть объект в результате работы функции просто нелогично. И решение, естественно, лежит на плечах разработчика. Со своей стороны, я могу только рекомендовать не оставлять пустых функций. Если нет явного значения которое можно вернуть в основную программу, смело возвращайте сам объект!
Beastriker
Гость
Я всегда был уверен, что функция, которая ничего не возвращает - это процедура
Evgeny Sergeev
Веб-разработчик, автор блога codeart.ru
Мне кажется процедура - чисто паскалевский термин. Никогда не понимал глубокого смысла в процедурах