求教关于 js闭包 的问题?

如下代码摘录自《JavaScript面向对象编程指南》第一版74页。用来演示闭包的

 function f(){
        var b = 'b';
        return function(){
            return b;
        }
    }
    var n = f();
    n();

这段代码放在控制台里边可以正常输出(输出b),但是如果放在html文件里边的

 <script>

里边,就无法输出,请教各位原因。html整体代码如下

  <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script type="text/javascript">
    function f(){
        var b = 'b';
        return function(){
            return b;
        }
    }
    var n = f();
    n();
    //console.log(n);
    //f()();
</script>
</head>
<body>
</body>
</html>

4个回答

你没有console.log打印内容当然无法在控制台显示任何东西,在控制台执行的代码会打印最后一个返回的值,所以不需要console.log

不要注释这2句

 console.log(n);
console.log(f()());
u013398355
linux5620207 恩 谢谢
3 年多之前 回复

一上传代码乱了,重新上传,用图片格式

![图片说明](https://img-ask.csdn.net/upload/201607/03/1467522942_970012.png) 

br标签怎么也不能放代码啊。得放在script里才行。

u013398355
linux5620207 我就是放在<script>里边的,一上传就变了 你可以看下图片
3 年多之前 回复

在IE下的JS编程中,以下的编程方式都会造成即使关闭IE也无法释放内存的问题,下面分类给出:

1、给DOM对象添加的属性是一个对象的引用。

范例:
var MyObject = {};
document.getElementById('myDiv').myProp = MyObject;
解决方法:
在window.onunload事件中写上: document.getEl......
答案就在这里:js 闭包 问题
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问