我试图端口下面的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