joh*_*ell 6 javascript recursion jslint mutual-recursion node.js
如果我编写以下代码,JSLint 会抱怨在定义之前使用了'isOdd'。有没有办法编写相互递归的代码并且仍然取悦JSLint?
var isEven = function(n) {
if (n === 0) {
return true;
}
return isOdd(n - 1);
};
var isOdd = function(n) {
if (n === 0) {
return false;
}
return isEven(n - 1);
};
Run Code Online (Sandbox Code Playgroud)
将这些函数转换为对象的方法可以消除来自 JSLint 的错误消息。这也可以更好地减少全局名称空间的污染。
var numUtil = {
isEven: function(n) {
if (n === 0) {
return true;
}
return this.isOdd(n - 1);
},
isOdd: function(n) {
if (n === 0) {
return false;
}
return this.isEven(n - 1);
}
};
Run Code Online (Sandbox Code Playgroud)