数组子类原型排序

时间:2013-12-30 12:41:53

标签: javascript

我很好奇如何在Array对象上实现我自己的sort函数。忽略有关扩展/覆盖内置的所有常见警告/危险,请考虑以下事项:

Array.prototype.sort = function() {
    this = mySortFunction(this);
    function mySortFunction(arr) { ... };
};

在闭包内,this引用Array对象[number, number2, number3, etc.]。如何重新分配this作为内部排序功能的结果?有可能吗?

1 个答案:

答案 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] = ...
    // ...
};