我試圖端口下面的JavaScript代碼,以紅寶石: https://github.com/iguigova/snippets_js/blob/master/pokerIn4Hours/pokerIn4Hours.js無法理解的Javascript嵌套函數/關閉
我認爲我已經大部分排序,這是給我的悲傷的功能是:
var kickers = function(idx){ // http://en.wikipedia.org/wiki/Kicker_(poker)
idx = idx || -15;
var notplayed = Math.max(input.length - 1/*player input*/ - 5, 0);
return function(all, cardinality, rank) {
return (all || 0) + (((cardinality == 1) && (notplayed-- <= 0)) ? rank * Math.pow(10, ++idx) : 0);
};
}();
,它被稱爲進一步下跌,像這樣:
k = kickers(k, cardsofrank[i], i);
我是WO如果有人可以解釋這是如何在JavaScript中工作的話。內部函數有3個參數,外部只有1的事實令人困惑,尤其是考慮到它被3個參數調用。我想了解它正在努力完成什麼,以便我可以自信地移植代碼。
所以,我想我的後續問題將是: 1.凡越來越因爲函數「IDX」的值被稱爲馬上__without__一參數? 2.這可以重寫沒有內部功能?如果是這樣,這將是什麼樣子? – iank 2014-12-02 20:56:02
@ user3871205我編輯了答案,以解決您的查詢 – Amitesh 2014-12-03 05:23:51
好吧,所以'嵌套'的唯一原因是限制範圍。謝謝,我想我現在已經有了頭了! :) – iank 2014-12-03 21:06:05