博主:
你好!
看到你写的关于闭包的知识了,受益匪浅。
我有一个问题请博主解答,谢谢!如下:
function checkscope(){
var scope=”local scope”;
function nested(){
var scope=”nested scope”;
document.write(scope);
}
nested();
}
nested函数定义的局部变量是对外围函数变量的改变吗?按照定义应该不是对外围变量的改变,只是自己局部作用域可见的一个局部变量而已。如果这样的话,还有个问题,如下:
var scope = “global scope”;
function checkscope(){
var scope=”local scope”;
function nested(){
var scope=”nested scope”;
document.write(scope);
}
nested();
}
var C=checkscope();
c();
谢谢你认真的回答:)
var scope = “global scope”;
function checkscope(){
var scope=”local scope”;
function nested(){
var scope=”nested scope”;
document.write(scope);
}
return nested;
}
var C=checkscope();
c();
如果这样写C的值是不是就是nested scope了?这也是个闭包.但不是我们通常上说的“闭包”!(我现在这个理解了 呵呵)
我之所以原来有第二个疑问,就是因为没有看到“一个函数内部变量被外部引用”,所以不确定是不是个闭包,现在了解了!呵呵!
请问贵站如何提升PR到3的,我个人的博客Alexa排名一直在66W左右,而您的在70W,排在我之后。
而我的PR只有1。并且Google Adsense投放以来不过才2美元的收入。实在是很惊讶……
今天下午来到这里,看了2个多小时,呵呵
2个小时就看完了我的好几年
猪,一切顺利哦~~~
hi, felix, i am your univ. classmate, how are you these years? this is really a great website, add oil!!:)
Hi Cicily, How’s going? I know who you are for sure. Life is busy but great. Are you still in HK? Going to back?
ha, yes i am in HK, won’t be back in the recent few years. you are doing a really great job, i ll visit here frequently~
I haven’t updated for a while. So, what are you doing there, still in univ?
博主:
你好!
看到你写的关于闭包的知识了,受益匪浅。
我有一个问题请博主解答,谢谢!如下:
function checkscope(){
var scope=”local scope”;
function nested(){
var scope=”nested scope”;
document.write(scope);
}
nested();
}
nested函数定义的局部变量是对外围函数变量的改变吗?按照定义应该不是对外围变量的改变,只是自己局部作用域可见的一个局部变量而已。如果这样的话,还有个问题,如下:
var scope = “global scope”;
function checkscope(){
var scope=”local scope”;
function nested(){
var scope=”nested scope”;
document.write(scope);
}
nested();
}
var C=checkscope();
c();
这算是个闭包吗?
变量c引用的内部函数nested是调用函数checkscope返回的。但是nested没有用到函数checkscope的变量,还算是完整的闭包吗?还是在实现别的功能?
不好意思 我是尽力描述的 希望博主能看懂 谢谢解答!
你好,关于第一段代码。两个scope变量分别位于两个不同的活动对象上,因此不会互相影响,但在nested内部需要访问scope变量的时候,因为已经在nested函数自身的活动对象上发现了scope变量,因此不会再沿作用域链向上搜索。
关于第二段代码,广义上来讲,所有的函数都会创建闭包,但你的这段代码不是我们通常意义上所讲的那种最具特点的“闭包”,因为并不存在一个函数内部变量被外部引用的情况。checkscope并没有任何返回值,内部成员并未暴露给外部变量,因此c实际为undefined,c()自然就会报错了。
谢谢你认真的回答:)
var scope = “global scope”;
function checkscope(){
var scope=”local scope”;
function nested(){
var scope=”nested scope”;
document.write(scope);
}
return nested;
}
var C=checkscope();
c();
如果这样写C的值是不是就是nested scope了?这也是个闭包.但不是我们通常上说的“闭包”!(我现在这个理解了 呵呵)
我之所以原来有第二个疑问,就是因为没有看到“一个函数内部变量被外部引用”,所以不确定是不是个闭包,现在了解了!呵呵!
我想问一下你的博客是放在哪里的主机上的啊,我也想弄一个!
我的不是买的空间,是在自己的服务器上。
hah,来给老公踩
oooO ↘┏━┓ ↙ Oooo
( 踩)→┃你┃ ←(死 )
\ ( →┃√┃ ← ) /
\_)↗┗━┛ ↖(_/
老大,恭喜啊,10年修成正果!
哈哈,谢谢。你们也抓紧啊!
呵呵,浏览了下你的相册,看到了咱Team人一起k歌照片,其乐融融,很happy啊,伙计们都还好吧,想念你们~~
亲娘耶,我在google上,搜了下“在线快乐女生直播”,居然跳到了你的页面。是不是要恭喜一下你的网站火热程度呢,网站现身率这么高~~悍