Всем привет
Подскажите, для чего в функции range создается переменная "r"? Это пример из книги Флэнэгана. В последствии обращение без всякой r идет к свойствам и методам.
function inherit(p) {
if (Object.create) // If Object.create() is defined...
return Object.create(p); // then just use it.
}
function range(from, to) {
var r = inherit(range.methods);
r.from = from;
r.to = to;
return r;
}
range.methods = {
includes: function(x) { return this.from <= x && x <= this.to; },
foreach: function(f) {
for(var x = Math.ceil(this.from); x <= this.to; x++) f(x); },
toString: function() { return "(" + this.from + "..." + this.to + ")"; }
};
var rObject = range(1,3); // Create a range object
rObject.includes(2); // => true: 2 is in the range
rObject.foreach(console.log); // Prints 1 2 3
console.log(rObject); // Prints (1...3)