JS语法特性2
一、IIFE 直接调用函数表达式
Immediately invoked function expression ,简称 IIFE ,同时声明并调用函数。
1、语法
(function() {
// 这里的代码会立即执行
})();
2、使用 IIFE实现递规
需要提供一个有名函数 counter ,名称 counter 只在函数自己的作用域内可见。
var charsInBody = (function counter(elm) {
if (elm.nodeType == 3) { // TEXT_NODE
return elm.nodeValue.length;
}
var count = 0;
for (var i = 0, child; child = elm.childNodes[i]; i++) {
count += counter(child);
}
return count;
})(document.body);