我正在编写一个自定义排序函数,并将其原型化为 Array。(请不要发布答案,向我解释我不应该为 Array 进行原型设计,无论出于何种原因,您认为 Array 的原型设计不是一个好主意)。
所以,我的方法是这样的:
//method
Array.prototype.mySort = function(memberName, ascOrDesc){
var labelRow = this.shift();
var ret = this.sort((function (a,b){
if(ascOrDesc > 0)
return (a[memberName] > b[memberName])?1:-1;
return (a[memberName] < b[memberName])?1:-1;
}));
ret.unshift(labelRow)
return ret;
}
注意 this.shift() 将如何影响 Array IN PLACE。
但是,我不清楚这是如何实现的。如果我想编写自己的myShift
方法,在某些时候我需要说一些大意的东西
this = this.myShift();
这显然是非法的。
因此,我试图了解 shift() 如何访问数组的成员并能够就地删除第一个成员。如果我被允许做类似的事情,或者如果这以某种方式被烘烤并且我无法使用。