亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請教《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 關注
  • 672 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號