我很好奇如何在Array对象上实现我自己的sort函数。忽略有关扩展/覆盖内置的所有常见警告/危险,请考虑以下事项:
Array.prototype.sort = function() {
this = mySortFunction(this);
function mySortFunction(arr) { ... };
};
在闭包内,this
引用Array对象[number, number2, number3, etc.]
。如何重新分配this
作为内部排序功能的结果?有可能吗?
答案 0 :(得分:1)
您的解决方案似乎有点多余:
Array.prototype.sort = function() {
this = mySortFunction(this);
function mySortFunction(arr) {
arr = yetAnotherSortFunction(arr)
function yetAnotherSortFunction(arr2) {...}
// and so on...
};
};
如果你真的想这样做,为什么不直接引用你的数组:
Array.prototype.sort = function() {
// your implementation:
// for (var i = this.length, ...
// if (this[0] == ...
// this[i] = ...
// ...
};