Pull to refresh

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

Reading time1 min
Views1.5K
Если функция после своего выполнения ничего не возвращает в основной поток программы — это плохая функция. После знакомства с 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), вернуть объект в результате работы функции просто нелогично. И решение, естественно, лежит на плечах разработчика. Со своей стороны, я могу только рекомендовать не оставлять пустых функций. Если нет явного значения которое можно вернуть в основную программу, смело возвращайте сам объект!

codeart.ru
Tags:
Hubs:
Total votes 8: ↑4 and ↓40
Comments21

Articles