听说js函数内只允许有一个return 但是今天看到这样一个函数
function(a) {
return function(element, className) {
element = $E(element);
var classArray = className.split(/\s+/),
result = typeof element.className == 'undefined' ? '': element.className,
classMatch = " " + result + " ",
i = 0,
l = classArray.length;
for (; i < l; i++) {
if (classMatch.indexOf(" " + classArray[i] + " ") < 0) {
result += (result ? ' ': '') + classArray[i];
}
}
element.className = result;
return element;
}
});
里面有俩个呢,怎么解释?
首先,这是两个函数,它们是嵌套的,因此实际上每个函数一个return,简化一下如下
function a() {其次,函数中可以有N个return,但是其中任意一个发挥作用则其后的代码不会再继续执行了,如