当前位置:编程学习 > JS >>

javascript中闭包的问题,求助。。。

<script language="Javascript"> uniqueId = (function(){ var id = 0; return function (){return id++;} })(); var result = uniqueId(); </script> 为什么把第四行的return去掉,在第六行调用uniqueId()就会报错?闭包必须有返回值么?高手详细解释一下这段代码。
答案:闭包是种抽象概念,只有语言内部才能访问它的结构。

闭包的基本表现形式就是匿名函数,这是一个对象,你不返回这个函数对象,函数对象的闭包你也就用不了了

没有reture uniqueId就是未定义
其他:没有ruturn函数返回的就是undefined,这个可以调用?
你学过C++没有?其它可以把它当作一个实现了operator ()函数的类,你可以看看那个stl的bind1st这样的仿函数。 

上一个:JavaScript中,关于nodeType和html标记的一个疑惑。
下一个:javascript里面的: onMouseClick 和 onClick 的区别是什么?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,