// codeart.ru / Главная / Что должна возвращать функция.

Что должна возвращать функция.

Автор: Evgeny Sergeev

Если функция после своего выполнения ничего не возвращает в основной поток программы - это плохая функция. После знакомства с JQuery я был очарован тем, что любая функция возвращает сам объект, в рамках которого она запущена. Что это дает? Самое главное - возможность последовательно выполнить ряд операций над одним и тем же объектом, в одну строчку.

Приведу пример:

function coordinates(x, y){
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), вернуть объект в результате работы функции просто нелогично. И решение, естественно, лежит на плечах разработчика. Со своей стороны, я могу только рекомендовать не оставлять пустых функций. Если нет явного значения которое можно вернуть в основную программу, смело возвращайте сам объект!

  1. Я всегда был уверен, что функция, которая ничего не возвращает - это процедура :-)

  2. Мне кажется процедура - чисто паскалевский термин. Никогда не понимал глубокого смысла в процедурах :-)

Leave a Reply

« Как измерить производительность сайта Смена слогана без смены направленности блога »