黑马程序员技术交流社区

标题: 刚看了javascript的视频,对其中的一个说法想了解 [打印本页]

作者: 黑马-张扬    时间: 2012-12-13 19:52
标题: 刚看了javascript的视频,对其中的一个说法想了解
javascript中没有类的概念,是用函数闭包模拟出来的。
那么这个函数闭包是什么意思呢?
作者: 张海涛    时间: 2012-12-13 22:07
javascript和java不是一家的东西,是两码事,别混淆了,javascript是网页脚本语言,有自己的语法和特点,别把它当java学!!!
作者: 黑马-张扬    时间: 2012-12-14 11:51
明明没当一回事啊!我是问的函数闭包,想了解一下,因为是视频里面老师说javascript的类是用函数闭包模拟出来的。
作者: 汪磊    时间: 2012-12-14 15:03
就是模拟的意思啊!  模拟出一个类似于类的东东!
作者: 黑马_黄开潮    时间: 2012-12-14 17:25
一个闭包就是当一个函数返回时,一个没有释放资源的栈区
例:

<scripttype="text/javascript">

functionsayHello2(name){

vartext='Hello'+name;//localvariable

varsayAlert=function(){alert(text);}

returnsayAlert;

}

varsy=sayHello2('never-online');

sy();

</script>

上面的代码就是一个函数的引用
在Javascript里。如果你创建了一个内嵌函数,也就是创建了一个闭包。
在C或者其它的主流语言中,当一个函数返回后,所有的局部变量将不可访问,因为它们所在的栈已经被消毁。但在Javascript里,如果你声明了一个内嵌函数,局部变量将在函数返回后依然可访问。
作者: Jam    时间: 2012-12-14 22:09
闭包和类有关系吗
作者: 吴伟    时间: 2012-12-14 22:27
说js中的类是模拟出来的,表示js中的对象可以像面向对象编程语言一样通过"对象.成员"的方式访问数据,js中在一个函数内部声明的变量其作用域就在函数内,就相当于一个成员属于一个类一样。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2