- 主题:这个算是JavaScript的闭包吗? 看不太懂,请教大家
myFunction = function(){
var myPrivate;
var myPrivateFun1 = function(){
};
var myPrivateFun2 = function(){
myPrivateFun1();
return {
a: function(){}
}
};
return myPrivateFun2;
}();
问题:
1、myFunction函数里有几个闭包?
2、整个程序的执行过程是怎么样的?
3、谁调用的myPrivateFun2?
--
FROM 114.255.41.*
面试题?
【 在 roger1234 (xiaohao) 的大作中提到: 】
: 标 题: 这个算是JavaScript的闭包吗? 看不太懂,请教大家
: 发信站: 水木社区 (Sat Nov 24 16:19:52 2012), 站内
:
: myFunction = function(){
:
: var myPrivate;
: var myPrivateFun1 = function(){
: };
:
: var myPrivateFun2 = function(){
: myPrivateFun1();
: return {
: a: function(){}
: }
: };
:
: return myPrivateFun2;
:
:
: }();
:
: 问题:
: 1、myFunction函数里有几个闭包?
从来没听说闭包还能按“个 ”来衡量
: 2、整个程序的执行过程是怎么样的?
从上往下执行
: 3、谁调用的myPrivateFun2?
没人调用
:
: --
:
: ※ 来源:·水木社区 newsmth.net·[FROM: 114.255.41.*]
--
FROM 114.249.223.*
myFunction为什么一定要写成即时调用的形式?
fun = function(){
}();
在html中,先引入了上述js文件
在下面进行了如下使用:
<script>var xx=myFunction();</script>
myFunction在上面不是已经销毁了吗? 怎么还可以使用?
这是什么用法呢?
【 在 roger1234 (xiaohao) 的大作中提到: 】
: myFunction = function(){
: var myPrivate;
: var myPrivateFun1 = function(){
: ...................
--
FROM 114.255.41.*
可以是。。 搞不清啊
【 在 lins05 (lins) 的大作中提到: 】
: 面试题?
: 从来没听说闭包还能按“个 ”来衡量
: 从上往下执行
: ...................
--
FROM 114.255.41.*
写成及时调用的形式是为了控制作用域,myPrivateFun1在外面是完全不可见的,
myFunction最后实际上是myPrivateFun2。
【 在 roger1234 (xiaohao) 的大作中提到: 】
: myFunction为什么一定要写成即时调用的形式?
: fun = function(){
: }();
: ...................
--
FROM 82.42.236.*
但是不写成即时调用的形式
下面<script>var xx=myFunction();</script>
就不执行了
这是什么原因?
【 在 singleton ([该地区已被屏蔽]人民大起义) 的大作中提到: 】
: 写成及时调用的形式是为了控制作用域,myPrivateFun1在外面是完全不可见的,
: myFunction最后实际上是myPrivateFun2。
--
FROM 114.255.41.*
程序的语干是myFunction = ...
这是一个赋值语句,已经执行了
【 在 roger1234 (xiaohao) 的大作中提到: 】
: 但是不写成即时调用的形式
: 下面<script>var xx=myFunction();</script>
: 就不执行了
: ...................
--
FROM 123.124.56.*