将函数定义包装在直接匿名函数中有什么好处吗?
这是来自jsfeat库的示例:
var get_channel = (function () {
return function(type) {
return (type & 0xFF);
}
})();
还是只执行以下操作更好?
var get_channel = function(type) {
return (type & 0xFF);
};
在这种情况下,似乎没有支持第一个版本的优势:
- 它更长更难阅读,
- 它占用了更多的内存,因为闭包保留了对外部激活对象的引用,但是里面没有有用的数据,
- 有时它会更慢(至少在理论上),因为如果引擎必须通过更长的范围链,访问全局变量需要更长的时间。