Сообщение от Vladimir
|
Взгляните на пример из первого поста.
|
Простейший вариант будет примерно таким:
var F = function(x) {
return {
plus: function(y) {
x += y;
return this;
},
minus: function(y) {
x -= y;
return this;
},
getResult: function() {
return x;
}
};
};
alert(
F(10).plus(5).minus(3).getResult()
);
Он плох тем, что при каждом вызове F создается новый объект, тем самым забивается память браузера.
Вариант получше:
var F = function(x) {
return new F._f(x);
};
F._f = function(x) {
this.x = x;
};
F._f.prototype.plus = function(y) {
this.x += y;
return this;
};
F._f.prototype.minus = function(y) {
this.x -= y;
return this;
};
F._f.prototype.getResult = function(y) {
return this.x;
};
alert(
F(10).plus(5).minus(3).getResult()
);