- 29
- 0
同一个原型链函数,传入不同参数,得出不同的结果,但后一个函数覆盖了前一个函数,两个函数输出相同的结果,此为排序的示例,排序优先级为age->sex->id
var arr = [
{"name":"aa","id":1000,"sex":0,"age":28},
{"name":"bb","id":1001,"sex":1,"age":18},
{"name":"cc","id":1002,"sex":0,"age":18},
{"name":"cc","id":1003,"sex":1,"age":18}
];
//1.升序
function upsort(first,second,third){
return function(a,b){
var v1 = a[first];
var v2 = b[first];
var res = v1 - v2;
if(res == 0){
upsort(first,second,third);
var v3 = a[second];
var v4 = b[second];
var res2 = v3 - v4;
return res2;
if(res2 == 0){
upsort(first,second,third);
var v5 = a[third];
var v6 = b[third];
var res3 = v5 - v6;
return res3;
}
}
return res;
}
}
//2.降序
function downsort(first,second,third){
return function(a,b){
var v1 = a[first];
var v2 = b[first];
var res = v2 - v1;
if(res == 0){
downsort(first,second,third);
var v3 = a[second];
var v4 = b[second];
var res2 = v4 - v3;
return res2;
if(res2 == 0){
downsort(first,second,third);
var v5 = a[third];
var v6 = b[third];
var res3 = v6 - v5;
return res3;
}
}
return res;
}
}
function sortPlugin(){}
sortPlugin.prototype.str = 1; //1为升序,2为降序,默认为升序
sortPlugin.prototype.sortWay = function(str = this.str){
if(str == 1){
console.log(arr.sort(upsort("age","sex","id")));
}else if(str == 2){
console.log(arr.sort(downsort("age","sex","id")));
}
}
var sp = new sortPlugin();
sp.sortWay();
sp2.sortWay(2);
单独运行两个函数是没问题的,不知道哪里出了问题,原型链还没有吃透
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
快来拉我 普通会员 1楼在JavaScript中,原型链上的函数确实可能会发生覆盖问题。具体来说,如果一个对象实例定义了一个与它的原型(或原型链上的任何对象)中同名的函数,那么这个实例会“遮蔽”或“覆盖”原型链上同名的函数。 例如: ```javascript function Animal() {} Animal.prototype.eat = function() { console.log('动物吃东西'); } let dog = new Animal(); // 覆盖原型上的eat函数 dog.eat = function() { console.log('狗吃骨头'); } dog.eat(); // 输出 '狗吃骨头' ``` 在这个例子中,`dog`对象实例有一个名为`eat`的方法,这使得它在调用`dog.eat()`时,不会去查找原型链上的`eat`方法,而是直接调用自己的`eat`方法。 因此,当你试图通过实例调用原本在原型链上的函数时,如果实例本身有同名函数,则会调用实例自身的函数,这就是所谓的“覆盖”。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
