为了账号安全,请及时绑定邮箱和手机立即绑定

请教《javascript语言精粹》一书中关于sort函数的3个问题

请教《javascript语言精粹》一书中关于sort函数的3个问题

慕姐8265434 2018-08-06 10:09:26
下面的代码摘自《javascript语言精粹》中的array.sort(comparefn)一节(Page81),但是我用firebug测试却产生了错误信息:missing } after property list,message: 'Expected an object when sorting by ' + name;问题1:请教错误产生的原因?问题2:假设错误已经修正,那么可以看作var name='last', minor=by("first"),但当by函数第二个参数为函数的时候,则返回minor(o,p)这个函数,但是minor(o,p)又是在什么地方定义的呢?(可能我的表述不清,总之就是对这段代码不能理解,请大家帮我梳理一下理解这段代码的思路。)问题3:我对by函数返回的匿名函数的形参o,p的理解是:在这里o,p是指的数组s中的任意两个参数,如果我理解的正确,那么这个指定任意参数的规则是如何规定的,我应该去搜索什么关键词了解相关的知识点?对于数组s而言,这段by函数计算了多少次,是15次吗?如果不是,那是多少次,为什么?
查看完整描述

1 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

1. 错误有:

message: 'Expected an object when sorting by ' + name; //最后这个分号

2. 返回的 minor(o,p) 是

var sSort = s.sort(by('last'), by('first'))); //这里传递的第2个参数 by('first')//minor(o, p) 即 by('first', null)

3. (o, p) 是数组 s 里面的任意两个对象, 这个是由 sort() 方法规定的
排序的参数是通过 by(name) 传递到 o[name] 和 p[name] 上的
进行比较的实际是 o[name] 和 p[name]


查看完整回答
反对 回复 2018-09-14
  • 1 回答
  • 0 关注
  • 625 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信