闭包在函数作用域之外不起作用
Closure not working outside of the function scope
刚刚开始学习闭包,并在FireBug中编写了以下代码:
var later;
function outerFunc() {
var innerVar = "Inside Outer";
function innerFunc() {
console.log(innerVar);
}
later = innerFunc;
};
outerFunc();
later();
但是在调用later();
时它返回一个未定义的值。是不是应该打印出"Inside Outer" ?
var later;
function outerFunc() {
var innerVar = "Inside Outer";
function innerFunc() {
console.log(innerVar);
}
later = innerFunc;
};
outerFunc(); //Don't run innerFunc, just set later = innerFunc
later(); // Execute innerFunc
所以它只记录一次。
相关文章:
- 监视函数从服务返回不起作用,但作用域函数起作用
- 从子级(iframe)到父级的跨域通信不起作用
- 按钮不起任何作用
- Javascript getJSON 不起作用(可能是跨域)
- JQuery 验证来自另一个域的 url 不起作用
- 角度指令作用域绑定在 ng-repeat中不起作用
- 跨域 AJAX 不起作用,即使使用通配符来源也是如此
- 简单的跨域 iframe postMessage 在 jsfiddle 中工作,但在本地不起作用
- jquery文件在域外不起作用(跨域.xml)
- CKFinder“编辑”功能在不同域上工作时不起作用
- 文档域同源策略不起作用
- 使用 AngularJS 的跨域请求不起作用
- 在 $scope.$watch 中更新时,独立作用域绑定不起作用
- 跨域请求不起作用
- 对作用域的性质进行计算;不起作用
- HTML5 setDragImage():dragIcon.width完全不起任何作用
- 在PhoneGap 2.9中使用jQuery/JavaScript的点击按钮事件不起任何作用
- console.log在Liferay中的Firebug中不起任何作用
- 请求用户共享的JS对话框;消息“;参数不起任何作用
- 谷歌地图API infoWindow.colose()不起任何作用