I am defining two prototypes for array and one prototype needs to call other like that:
Array.prototype.swap = function (x, y) {
var b = this[x];
this[x] = this[y];
this[y] = b;
return this;
};
Array.prototype.rotate = function () {
for (idx in this) {
nextIdx = idx + 1 < this.length ? idx + 1 : 0;
this.swap(idx, nextIdx);
}
return this;
};
When I run [1,2,3,4].rotate() i get an error
> TypeError: this.swap is not a function
> at Array.rotate (/home/user/array.js:11:10)
I think it's impossible to use an user-defined prototype inside another, but I want to understand why, and if I'm wrong (it's possible), how can I use? Thanks!