当前位置: 首页 > news >正文

网站备案加急南昌外包建站

网站备案加急,南昌外包建站,网站设计费用价目表,江苏省网站备案查询讲的很清楚明了#xff0c;连我都懂了#xff0c;要是我们大学时的老师也能这么讲课。。。他们只会放幻灯片2009年8月30日 22:29| #| 引用2009年8月30日 22:44| #| 引用呵呵#xff0c;可以作为面试题了#xff01;2009年8月31日 09:30| #| 引用十三说#xff1a;闭包个人…讲的很清楚明了连我都懂了要是我们大学时的老师也能这么讲课。。。他们只会放幻灯片2009年8月30日 22:29| #| 引用2009年8月30日 22:44| #| 引用呵呵可以作为面试题了2009年8月31日 09:30| #| 引用十三说闭包个人感觉是一种描述函数内部的数据结构来描述函数的运行上下文.Javascript编程精粹 这本书算是讲的比较好一点.2009年8月31日 09:40| #| 引用迷途小书童说类是有行为的数据闭包是有数据的行为。2009年8月31日 10:26| #| 引用tt说阮兄有点疑问function f1(){n999;function f2(){alert(n);}return f2;}var resultf1();result(); // 999可以写成如下的不也一样么function f1(){n999;return n;}var resultf1();alert(result);2009年8月31日 21:16| #| 引用tt 实际上后种方法每次调用 f1 时都会声明 n 999而且 n 无法保留状态值(严格按照你的代码其实 n 为全局变量我理解你的本意为 var n 999;)。而第一种 f1 实际上返回的是个匿名函数这样 n 作用域被另外个 f2 函数作用域所使用因此它会保留。n 不会被重复声明且内容会被保存2009年9月 1日 13:20| #| 引用这是我见过最简单易懂的闭包教程。支持下。博主的博客写的不错简单易懂东西涉及的很多方面我都有兴趣看来是同道中人^_^2009年9月 2日 16:49| #| 引用一文中的!!!!!!!!!!!!学习了!!2009年9月 3日 11:08| #| 引用想知道思考题的答案我以为是My Object2009年9月15日 00:09| #| 引用steven说顶楼主我读了一些文章。不是特明白。有个问题。记得有人说。外面的函数是closure,好像楼主说里面的函数是closure.不知道到底哪个是谢谢。2009年11月21日 14:51| #| 引用jkd___w说楼主讲讲最后一个思考题没明白2009年11月26日 09:21| #| 引用hou说请版主讲一讲最后一个例子怎么回事没有看明白2009年11月30日 16:00| #| 引用George Wing说函数中的this一般是指向window中的变量。引用hou的发言 请版主讲一讲最后一个例子怎么回事没有看明白2009年12月13日 09:55| #| 引用George Wing说上面本人说得不太正确。this的指向是由它所在函数调用的上下文决定的而不是由它所在函数定义的上下文决定的。2009年12月13日 10:23| #| 引用George Wing说如果非要指向object可显式的控制--把代码的最后一句改为 alert(object.getName().call(object));2009年12月13日 11:39| #| 引用c-star说阮大哥讲的很透彻 受益匪浅2009年12月18日 16:32| #| 引用ya说大道至简给予我这个初学者很大的帮助谢谢2010年1月11日 09:30| #| 引用过客说浅显易懂很好。如下看法认为有待商榷#1、有一个地方需要注意函数内部声明变量的时候一定要使用var命令。如果不用的话你实际上声明了一个全局变量#2、这段代码中另一个值得注意的地方就是“nAddfunction(){n1}”这一行首先在nAdd前面没有使用var关键字因此nAdd是一个全局变量而不是局部变量。其次nAdd的值是一个匿名函数(anonymous function)而这个匿名函数本身也是一个闭包所以nAdd相当于是一个setter可以在函数外部对函数内部的局部变量进行操作。function f1(){test 10;var n999;nAddfunction(){n1}function f2(){alert(n);}return f2;}//如果 #1 说法正确下句会打印10实际结果是test未定义。//alert(test); // error test 未定义//如果 #2 正确语句 nAdd(); 位置在何处应该都能执行测试结果在下面这个位置也就是语句 var resultf1(); 前。是不能执行的。//nAdd();var resultf1();result(); // 999nAdd();result(); // 10002010年1月28日 11:36| #| 引用To 过客函数内部定义的方法和变量要等到函数执行过以后才会真正定义2010年3月20日 16:17| #| 引用但是从过客说的里面可以引出另外的问题当使用这样的代码时。function f1(){test 10;var n999;nAddfunction(){n1}function f2(){alert(n);}return f2;}如果在函数f1定义之前添加变量定义var n 1;然后调用f1()();则显示为999。说明nAdd中的n确实是作为全局变量存在。于是问题就来了——有什么方法让他可以是父函数中定义的n呢2010年4月26日 15:28| #| 引用大道至简,很不错!~ 这篇文章我要转了...2010年4月28日 22:48| #| 引用引用George Wing的发言函数中的this一般是指向window中的变量。this关键字代表的实例会根据环境不同而变化的. 他总是指向owner 看看这篇你大概就动this这个关键字了2010年4月29日 12:34| #| 引用tomwang说最后一个题感觉和闭包没什么关系啊能详细解释一下吗因为当一个函数作为函数而不是方法来调用的时候this指向的是全局对象这在《Javascript权威指南》上说的很清楚所以答案肯定是“The Window”和闭包没什么关系啊2010年5月23日 18:24| #| 引用最后一题重点在this2010年8月25日 23:26| #| 引用bao说如果把f2申明成全局变量道理一样吗2010年9月 6日 17:45| #| 引用小猫说太经典了终于理解了一箭双雕啊既理解了this的用法又理解了闭包2010年9月16日 20:22| #| 引用soberlevi说这个例子很不错真的是一箭双雕2010年10月15日 09:29| #| 引用小彘说前面讲得挺好的浅显易懂。对最后的两个例子搞不清楚为啥。版主能不能具体分析下。var objfunction(){var MyFuncfunction(){alert(hello world);}return function(){return MyFunc;}}()var f3obj();var f4obj();alert(f3 f4);//为啥是TRUE搞不懂2010年10月24日 09:39| #| 引用最后两个例子很精炼 ^ ^2010年11月11日 15:24| #| 引用陈锐达说尝试解答代码段一getNameFunc: function() {//假设函数名为return function()/*假设函数名为*/ { return this.name; };}在函数里面构建函数的时候闭包产生。在函数内调用函数的this.name,由于函数没有name属性所以就去找全局变量name找到了所以返回“The Window”要是没有找到则返回“undefined”。代码段二可以尝试将代码更改为var _this this;return function() { return _this.name __ this.name; };2010年12月13日 15:50| #| 引用LuckyGeb说只有一点没弄懂如下代码nAdd在函数外为什么可以有意义而test不行想了好久不知道那里有解答function f1(){test10;var n999;nAddfunction(){n1}function f2(){alert(n);}return f2;}2011年1月17日 01:17| #| 引用qdsang说通俗易懂,, 阅览无数教程, 看了这篇, 终于明白了点.2011年1月24日 13:21| #| 引用sf说写得太好了2011年2月15日 16:47| #| 引用这篇文章是阮兄一贯的风格我喜欢不过 Javascript语言的特殊之处就在于函数内部可以直接读取全局变量。这句有点奇怪c不一样可以在函数内部直接读取全局变量么难道不是么2011年3月 2日 22:02| #| 引用ignition说阮大哥能不能具体讲下最后的思考题啊 感觉关键在this2011年3月 8日 15:56| #| 引用三少爷说变量的作用域无非就是两种全局变量和局部变量。这句话值得商榷, 变量的作用域确实只有两种, 不过他们是全局对象和函数.你想说的或许是变量的类型有两种?2011年3月25日 20:15| #| 引用轩脉刃说理解最后两个例子1 函数中的this指的是调用这个函数的owner2 object.getNameFunc()是返回一个函数并没有执行函数中的代码3 增加一个例子0var name The Window;var object {name : My Object,getNameFunc : function(){return (this.name);}};var name object.getNameFunc();alert(name);4 把例子1变成var name The Window;var object {name : My Object,getNameFunc : function(){return function(){return this.name;//这个this是有上下文的限制的};}};var tmp Object.getNameFunc(); //此时没有执行this.namevar name tmp();//这个时候才执行这时候的this上下文为全局alert(name);//alert(object.getNameFunc()())5 把例子2变成var name The Window;var object {name : My Object,getNameFunc : function(){var that this;return function(){return that.name;};}};var tmp Object.getNameFunc();//这个时候执行了that this这里的this上下文是object,所以that指的是objectvar name Object.getNameFunc();//这个时候执行了that.namealert(name);//alert(object.getNameFunc()());2011年4月19日 15:28| #| 引用引用Jason的发言但是从过客说的里面可以引出另外的问题当使用这样的代码时。function f1(){test 10;var n999;nAddfunction(){n1}function f2(){alert(n);}return f2;}如果在函数f1定义之前添加变量定义var n 1;然后调用f1()();则显示为999。说明nAdd中的n确实是作为全局变量存在。于是问题就来了——有什么方法让他可以是父函数中定义的n呢var n 1;function f1(){var n 999;nAdd function(){n;}function f2(){alert(n);}return f2;}var b f1();nAdd();//n 9991 1000b();//弹出 n 的值是 1000 (闭包内的变量n)alert(n);//弹出n的值是 1 (全局)全局的函数 nAdd 和 由f1返回的函数中 所使用到的变量n全部为f1函数内的局部变量n,而不是全局变量n,证据就是上面的代码中最后一句 alert(n) 弹出的值是1, 也就是说 nAdd中的n并没有改变全局变量中n的值.你自己描述的是 f1()() 显示的是999,说明 n 是使用的f1内部的变量n,而非是全局变量n,不知道你为什么会有说明nAdd中的n确实是作为全局变量存在。这种想法呢? 如果想在nAdd中使用全局变量n(即在函数外面定义的n)的话,使用window.n来访问.2011年4月20日 14:56| #| 引用楼主文章中的:二、如何从外部读取局部变量这一整大段中的n999;根据整篇文章所表达的内容,应该为:var n999;因为如果没有加var,则声明的是全局变量,既然是全局变量,则在所有函数内部都是可见的,也就不会存在闭包这种说法.请求楼主修正.2011年4月20日 15:02| #| 引用引用小彘的发言前面讲得挺好的浅显易懂。对最后的两个例子搞不清楚为啥。版主能不能具体分析下。var objfunction(){var MyFuncfunction(){alert(hello world);}return function(){return MyFunc;}}()var f3obj();var f4obj();alert(f3 f4);//为啥是TRUE搞不懂因为f3和f4都指向同一个地址(即MyFunc).var obj (function() {var MyFuncfunction() {alert(hello world);}return function() {return MyFunc;}})();var f3obj();var f4obj();alert(f3 f4);//为啥是TRUE搞不懂2011年4月20日 15:05| #| 引用小洪说我测试了一下为什么第一个例子输出的什么都没有是null第二个我理解是myobject。谁能解释下2011年4月20日 16:48| #| 引用Ruan YiFeng说引用小秦的发言请求楼主修正.谢谢指出已更正。2011年4月20日 16:53| #| 引用起初以为函数内用var声明变量就等于用了this声明其实不是var w100;function f1(){//var w101;//this.w102;function f2(){document.write(this.w);}return f2;}f1()();输出100var w100;function f1(){var w101;//this.w102;function f2(){document.write(this.w);}return f2;}f1()();输出100var w100;function f1(){w101;//this.w102;function f2(){document.write(this.w);}return f2;}f1()();输出101var w100;function f1(){//var w101;this.w102;function f2(){document.write(this.w);}return f2;}f1()();输出102看起来函数中的var和this并不是一个概念函数内的局部变量与函数的属性不是一回事不过通过上面的情况能够加深理解this和闭包2011年4月22日 11:27| #| 引用Aizen说很不错的讲解楼主写的通俗易懂很棒的理解很受用我的qq290913917 希望有机会成为共同研究javascript和html5的伙伴谢谢2011年5月 1日 00:10| #| 引用lily说我感觉第一个思考题是不是这样理解首先this指向的是当前运行该函数的对象,1、object.getNameFunc()得到了一个函数函数为function(){return this.name}2、object.getNameFunc()()此时为window运行该函数所以this指向的是window,所以this.name为The window2011年5月 4日 11:29| #| 引用foxracle说做习题之前有一点需要很清楚内部函数可以访问定义它们的外部函数的参数和变量(除了this和arguments之外)如果需要访问对象的name属性的话就需要显示的定义一个变量that来引用this而这个变量此时就指向object对象了。第一题改成下面这样就很清楚了。getNameFunc的第一个()是属于方法调用所以this绑定到了object对象自然this.name为My Object但是闭包函数无法访问这个this它只能访问到全局的this。var name The Window;var object {name : My Object,getNameFunc : function(){alert(this.name);return function(){return this.name;};}};alert(object.getNameFunc()());2011年5月23日 15:44| #| 引用CODER说写的真不错。。。看了很多文章讲闭包都是云里雾里的。。看了本文才恍然大悟。。。哦原来闭包如此简单。。。。楼主写的不错。。。2011年6月 2日 15:56| #| 引用小超说前面讲的我都明白但是最后两个例子还是不明白好多处都不懂1. var object {。。。} 这是在干什么是在声明一个变量还是在声明一个类然后里面有许多属性2 . object.getNameFunc()(); 怎么会有两个括号3. 如何判断 this指向的是object 对象还是全局对象 2011年6月14日 16:30| #| 引用anoymous说闭包是运行时中的概念不能讲哪个函数是一个闭包而是哪个函数在运行时存在一个闭包有时候好几个函数都可以组成一个闭包呢function ff(){var local1;this.add1function(){return local;};this.add2function(){return local;}}var fnew ff();alert(f.add1());//2alert(f.add2());//32011年6月24日 14:33| #| 引用Joe说最后两个例子中第一个其实不是闭包第二个是但第二个例子其实不用那么复杂直接把第一个例子中的this去掉就可以了。2011年7月25日 14:02| #| 引用Revo说为什么第一个运行以后结果是result既不是window也不是object....???2011年8月12日 15:31| #| 引用eva说function f1(){n999;}alert(n); // error这段代码在IE8和FIREFOX5上根本不能运行求解释...2011年9月 2日 10:03| #| 引用rush说evafunction f1(){n999;}alert(n); // error很明显啊全局变量n是在函数f1中定义的你不调用函数f1n怎么定义呢function f1(){n999;}f1();alert(n);这样不就OK了2011年9月 2日 11:27| #| 引用At this time enhancements in could also be noticed in a point of contention.2011年9月 8日 11:20| #| 引用思考题中的例子貌似是 javascript高级程序设计里的。今天刚看到。2011年9月28日 22:19| #| 引用hyant说你真是个有趣的人为什么我总能在你这里找到我感兴趣的博文……2011年10月11日 16:41| #| 引用Legend1988说楼主可以解释一下思考题一吗我看很多人跟我一样都不是很懂思考题一啊万分感谢2011年10月28日 10:13| #| 引用huangyunbin说引用Legend1988的发言楼主可以解释一下思考题一吗我看很多人跟我一样都不是很懂思考题一啊万分感谢同问为什么this在嵌套函数中的意义不一样2011年11月 2日 16:37| #| 引用apple说this始终表示调用者的应用第一个的闭包返回出来的一个函数就是在window的环境下调用了这个函数所以这个this是指向的window,而第二个把this保存在了that中。不知道说清楚没有2011年11月14日 18:03| #| 引用Richard.Chou说不错小伙子讲的很到位比一些书上生硬的翻译要好一些。Good2011年11月16日 10:39| #| 引用布田说后面第1个例子怎么输出result, result 是什么意思2011年11月25日 10:19| #| 引用noodles说陈锐达根据您的解释运行结果是不对的如在A中定义name执行结果一样2011年11月30日 23:24| #| 引用追逐我的梦说实际上我认为闭包只是给外部函数提供了一个操作局部变量的途径局部变量本身并没有改变仍然为局部变量。2011年12月 5日 23:04| #| 引用艳阳天说我也觉得最后两个例子好像跟this的关系更大……2011年12月 9日 15:15| #| 引用avatasia说tt 发问需谨慎 文中的写法是一种类的写法 域里有动作你这个是函数。2011年12月15日 10:45| #| 引用清流鱼说渐渐地对闭包和this有点了解尤其加上各位网友的激情讨论并附上示例通俗易懂2011年12月22日 23:09| #| 引用alex说引用Joe的发言最后两个例子中第一个其实不是闭包第二个是但第二个例子其实不用那么复杂直接把第一个例子中的this去掉就可以了。不行哦一定要引用一次不然还不是闭包。2012年2月10日 16:08| #| 引用黄黄说引用apple的发言this始终表示调用者的应用第一个的闭包返回出来的一个函数就是在window的环境下调用了这个函数所以这个this是指向的window,而第二个把this保存在了that中。不知道说清楚没有我赞成。。2012年2月28日 13:32| #| 引用林子说个人觉着楼主说的不是闭包2012年3月12日 17:37| #| 引用daniel说初学者就这么理解闭包最好不过了。2012年4月 6日 15:28| #| 引用思考题答案The Window、My Object其实最关键的就是要明白作用域链和闭包所起到的作用其实闭包说到底就是一个函数而且函数调用返回后其资源所占用的栈区并没有释放所以变量就还保存在内存中由于作用域链的关系它会去寻找离其最近的var声明var声明所在就是该闭包所在的层从而在这层里面所得到的结果就是它最后的值于是乎返回值也就是这个最终的值了2012年6月12日 14:13| #| 引用袁huhu说最后两道思考题 其实和函数调用还有关系的~ 在以上例子中使用的是函数调用的方式this这时候是指全局变量2012年6月27日 10:51| #| 引用红雨说引用afity的发言最后一题重点在this正解和闭包有什么关系啊2012年7月10日 23:47| #| 引用引用红雨的发言正解和闭包有什么关系啊对于代码片段一object.getnameFunc() 返回的匿名闭包函数被全局变量所引用其中的this指向全局变量当执行时打印The Window 。对于代码片段二object.getnameFunc() 在返回闭包函数前将this赋给that此时getnameFunc是由object调用的故而this指向object当内部函数被返回时由于闭包的特性仍然能访问到外部函数中的值当执行打印My Object 。2012年7月20日 19:37| #| 引用徐相说代码段一、当一个函数作为函数而不是方法调用的时候这个this关键字引用全局对象。容易令人混淆的是当一个嵌套的函数(作为函数)在一个包含的函数中调用而这个包含的函数是作为方法调用的这也是成立的this关键字在包含的函数中有一个值但是它却(不太直观地)引用嵌套的函数体的内部的全局对象。所以第一个打印出来的是The Window代码段二、由于this关键字不是在包含的函数中引用的而是通过thatthis这个调用的所以这个this不是在闭包内的因此这个this就不能调用函数体内的全局对象而是他的局部对象object.name所以第二个打印出来的是My Object2012年8月 2日 10:33| #| 引用编程大师说说多无用,关键是理清函数什么时候作为对象使用什么时候作为函数使用。2012年8月18日 00:46| #| 引用编程大师说object.getnameFunc()() 也可以改为object.getnameFunc().call()这就是javascript狡猾的地方。2012年8月18日 00:49| #| 引用讲得很易懂 ··· 然后最后思考题 感觉 是this关键字的问题暂时还不懂··2012年9月22日 20:11| #| 引用请问阮兄/各位高人假如某个JavaScript的函数对象已被调用过一次如何用代码验证/判断当该函数对象被第二次调用时它是新创建的还是使用的内存中已有的2012年11月 3日 18:52| #| 引用hanvslin说引用tomwang的发言最后一个题感觉和闭包没什么关系啊能详细解释一下吗因为当一个函数作为函数而不是方法来调用的时候this指向的是全局对象这在《Javascript权威指南》上说的很清楚所以答案肯定是“The Window”和闭包没什么关系啊完全赞同这位仁兄的看法前面闭包讲的不错但是最后面的思考题出的很烂啊跟闭包没关系让人看完了反而糊涂了2012年11月14日 14:21| #| 引用有个特别大的疑问……原因就在于f1是f2的父函数而f2被赋给了一个全局变量……f2真的被赋给一个全局变量了2012年12月10日 16:15| #| 引用rst说引用hanvslin的发言完全赞同这位仁兄的看法前面闭包讲的不错但是最后面的思考题出的很烂啊跟闭包没关系让人看完了反而糊涂了最初我也以为思考题与文章主题无关这两天在反复看 JavaScript 权威指南 函数一章都看晕了...产生闭包效果的环境必须是嵌套函数的引用被保存到了一个全局作用域里面也不难理解 阮老师思考题的设计了2012年12月25日 17:21| #| 引用在退出函数之前将不使用的局部变量全部删除。请教一下这个改如何做不太明白。。。Thanks!2013年1月14日 13:35| #| 引用初学JS说保留内存值的解释有点不好即使var result f1(); 即使这里不赋值给全局变量result通过f1()();也不会改变n的值呵呵~2013年2月20日 17:29| #| 引用后面的思考题 阮哥能解释一下吗前面的例子是看懂了 但是思考题还是不会做2013年2月20日 17:59| #| 引用这里对于闭包的讲解好一点普通的函数内嵌内部函数是先执行而闭包则是先把内部函数赋给外部函数然后在执行。2013年2月23日 12:11| #| 引用跟阮老师学JS2013年2月27日 13:08| #| 引用macrotea说感觉应该从js作用域链及其原理来分析闭包,这样才能彻头彻尾明白!2013年3月 2日 12:20| #| 引用zhangyq说引用George Wing的发言上面本人说得不太正确。this的指向是由它所在函数调用的上下文决定的而不是由它所在函数定义的上下文决定的。这里说的this才是正确的。如果将此处的this能够轻松的理解我想本文的最后一道题就懂了。你怎样认为呢2013年3月 6日 10:51| #| 引用douya0808说每个函数在被调用时其活动对象都会自动取得两个特殊变量this和arguments。内部函数在搜索这个变量时只会搜索到其活动对象为止因此永远不可能直接访问外部函数中的这两个变量(这一点通过前面的图可以看得更清楚)。意思就是说找到匿名函数中的this和arguments就不会再往下找了(这里的往下指的是外层的包含函数和最外层的window全局环境)而匿名函数的this对象通常指向window所以输出的是全局的那个字符串。不过把外部作用域中的this对象保存在一个闭包能够访问到的变量里就可以让闭包访问该对象了2013年4月 9日 19:57| #| 引用不执行调用f1肯定不可能生成test变量第二个问题同样的原因。引用过客的发言浅显易懂很好。如下看法认为有待商榷#1、有一个地方需要注意函数内部声明变量的时候一定要使用var命令。如果不用的话你实际上声明了一个全局变量#2、这段代码中另一个值得注意的地方就是“nAddfunction(){n1}”这一行首先在nAdd前面没有使用var关键字因此nAdd是一个全局变量而不是局部变量。其次nAdd的值是一个匿名函数(anonymous function)而这个匿名函数本身也是一个闭包所以nAdd相当于是一个setter可以在函数外部对函数内部的局部变量进行操作。function f1(){test 10;var n999;nAddfunction(){n1}function f2(){alert(n);}return f2;}//如果 #1 说法正确下句会打印10实际结果是test未定义。//alert(test);// error test 未定义//如果 #2 正确语句 nAdd(); 位置在何处应该都能执行测试结果在下面这个位置也就是语句 var resultf1(); 前。是不能执行的。//nAdd();var resultf1();result(); // 999nAdd();result(); // 10002013年4月30日 18:50| #| 引用Black说引用George Wing的发言上面本人说得不太正确。this的指向是由它所在函数调用的上下文决定的而不是由它所在函数定义的上下文决定的。哦。看了你这个解释就了解了2013年5月28日 15:38| #| 引用curran说说的很易懂最后两个例子还是有点模糊2013年5月30日 11:37| #| 引用为什么话要反着说呢应该说正例这着用太糟糕了赞同 迷途小书童 steven2013年6月 8日 15:11| #| 引用范小龙说引用tomwang的发言最后一个题感觉和闭包没什么关系啊能详细解释一下吗因为当一个函数作为函数而不是方法来调用的时候this指向的是全局对象这在《Javascript权威指南》上说的很清楚所以答案肯定是“The Window”和闭包没什么关系啊《Javascript权威指南》上说如果嵌套函数作为函数调用其this值不是全局对象(非严格模式下)就是undefined(严格模式下);如果嵌套函数作为方法调用其this值指向调用它的对象。所以代码片段一getNameFunc()作为object的方法所以this值应该指向调用它的对象(object)而object自己定义name为My Object所以片段一我觉得应该是弹出My Object。我是新手我只是从this方向对这个函数分析有错误的地方还望高手指点。2013年6月18日 15:50| #| 引用“闭包的概念”这一节总结的非常好浅显易懂。同时也了解了闭包的两个用处一个是可以读取函数内部的变量另一个就是让这些变量的值始终保持在内存中。2013年6月27日 20:59| #| 引用zz说最后两个例子关键是区分object.getnameFunc()调用时和调用后的this指向。第一个问题object.getnameFunc()()函数在执行时this属于全局域因此结果是the window第二个问题通过使用thatthis 保留了在调用object.getnameFunc()时的this状态值。因此在getnameFunc()的闭包中访问的变量是已经不是this的了而是that的2013年7月25日 21:06| #| 引用陈默说JS新手学习了思考题和讨论很强大。2013年7月30日 14:34| #| 引用张雨阁说思考题解答(个人见解)1、因为闭包最后的返回值是一个函数注意紧紧是一个函数而已 并没有执行等到alert调用时才执行而这时执行调用的方法前面阮老师说了函数内没有var声明的事全局变量所以调用的getName是一个全局的变量所以对应this找到的是全局的name.2、因为this的对象引用在编译时就已经确定了就是object所以返回值在Object中开始查找找到了Obeject中的name就不到全局变量中查找。2013年8月19日 11:23| #| 引用abel533说综合各种理解之后我明白最后的“代码片段一”中的闭包函数中的this是window对象也就是说..闭包函数的范围竟然是window。。。2013年8月22日 16:43| #| 引用superx说这么理解还不如不理解这样下来对新手是一种误导。所以说才建议大家尽量都去看英文网站。唉2013年9月24日 09:37| #| 引用wei说其实看完这篇文章对于闭包的概念就有了更深刻的理解最后留的两道题目很好的说明了这一点。因为第一题中getNameFunc这个方法或者叫函数是属于全局作用域的所以里面返回的this始终都是指向window的。而第二题中用thatthis改变了当前函数指向的作用域所以第二题中的this最终只想的是myobject。不知道我的理解正确不正确。如果说错请勿见怪...2013年10月 9日 23:37| #| 引用nebula说return function() {return this.name;}这里的this代表调用方法时所在的的作用域全局作用域window。return function() {return that.name;}object.getNameFunc()()此处实现了从外部调用局部变量的方法that会顺着作用域链向上级作用域查找所以获得是getnameFunc的定义的变量var that this。2013年11月13日 15:23| #| 引用小彘是引用类型。f3和f4的值是指针只想obj()。所以全等是true。2013年11月13日 18:47| #| 引用后两个应该this的作用域问题不是闭包的问题吧。 弄的我都糊涂了... 还好找了一篇通俗的问题在,终于弄懂了2013年12月 3日 10:31| #| 引用小小技术员说执行过f1这个函数后test如果是局部变量会被销毁如果是全局变量则会保存在内存堆(heap)里如果不执行f1函数test和nadd都是不存在的2013年12月 5日 13:53| #| 引用小小技术员说不我补充一下我应该是说错了既然f2函数是闭包那么f2函数会保持它的外部函数f1的作用域即使定义test为f1函数的局部变量(var test 10);那么也要先检查f2是否对test产生引用如果引用数为0则在f1()调用完后销毁再运行f1()()(实际上是调用f2函数)也不会产生对test这个局部变量的引用所以它就在栈中被销毁了。如果理解的不对请大侠们拍砖2013年12月 5日 14:19| #| 引用_____LG说最后的思考题如果能理解这句话“this的指向是由它所在函数调用的上下文决定的而不是由它所在函数定义的上下文决定的”我想就能它们的运行结果了2014年1月 6日 16:29| #| 引用this的指向是由它所在函数调用的上下文决定的而不是由它所在函数定义的上下文决定的。喜欢这句话但是闭包还是没有理解透彻。2014年1月14日 15:14| #| 引用陈守川说我觉得大家说了这么多都没人把代码写出来运行一下来验证自己的答案么也不管自己的答案是否正确么。通过运行发现思考题一打印空白思考题二打印My Object虽然我不太了解但是评论中的很多人自己也理解错误了。2014年2月17日 11:56| #| 引用jprovim说R兄講的非常簡單易懂。2014年2月22日 06:25| #| 引用bryantzhang说我觉得是这样的第一个里边的this指向的是那个闭包函数第二个例子里边的this指向的是object。引用陈守川的发言我觉得大家说了这么多都没人把代码写出来运行一下来验证自己的答案么也不管自己的答案是否正确么。通过运行发现思考题一打印空白思考题二打印My Object虽然我不太了解但是评论中的很多人自己也理解错误了。2014年2月25日 10:59| #| 引用陈辉说第一个 打印结果为 The window第二个 打印结果为 My Object第一个 this为全局对象所以alert处理的name为The window第二个 that 为object对象所以alert 处理的name为My object第二个好理解因为在调用前用that 保存了object 自己的this所以that 就成为是有变量在闭包内可以调用。第一个有点晕因为第一个的this指向自己然后被window 给调用this 就成了window对象它的name就是全局的name引用陈守川的发言我觉得大家说了这么多都没人把代码写出来运行一下来验证自己的答案么也不管自己的答案是否正确么。通过运行发现思考题一打印空白思考题二打印My Object虽然我不太了解但是评论中的很多人自己也理解错误了。2014年3月16日 15:49| #| 引用这篇文章流传很广看了多次忍不住要问了。下面这句话Javascript语言的特殊之处就在于函数内部可以直接读取全局变量。请问有哪种语言是“不”可以在函数内部直接读取全局变量的 全局变量什么意思就是在任何地方都可以读取。2014年3月29日 23:27| #| 引用Ming说引用忍不住要问了的发言请问有哪种语言是“不”可以在函数内部直接读取全局变量的 全局变量什么意思就是在任何地方都可以读取。我觉得这句话可以改成Javascript语言的特殊之处就在于函数内部可以直接声明(不使用var)并读取全局变量。2014年4月23日 01:44| #| 引用Asakura说引用忍不住要问了的发言这篇文章流传很广看了多次忍不住要问了。下面这句话Javascript语言的特殊之处就在于函数内部可以直接读取全局变量。请问有哪种语言是“不”可以在函数内部直接读取全局变量的 全局变量什么意思就是在任何地方都可以读取。同感啊一直对此很费解2014年5月11日 15:34| #| 引用yuanboss说感觉基本是参考《javascript高级程序设计》这本书里面的2014年5月15日 22:12| #| 引用阮一峰说本文关闭不再接受回复。2014年5月27日 20:42| #| 引用
http://www.yutouwan.com/news/339650/

相关文章:

  • 上传自己做的网站后台怎么办凡客装修
  • 家居网站开发项目计划书企业网站建设基本流程图
  • 互联网招聘网站随州seo推广
  • seo网站排名软件合肥做网站公司哪家好
  • 外贸网站怎样注册国外一个做同人动漫的网站
  • 宁波高端网站建设公司郑州正规的网站制作价钱
  • 交友深圳网站建设本地搭建php网站
  • 青浦网站设计制作简述制作网页时需要的环节
  • 建设银行官方网站 诚聘英才宁波自助建站模板
  • 代理平台登录镇江seo网站优化
  • 如何做网站截流阿里巴巴做网站教程
  • 金融行业建设网站百度企业网盘
  • ppt模板网站源码珠宝网站建设方案
  • 做网站的开发环境网站是什么软件
  • 郑州建网站费用网站开发客户哪里找
  • 简单 网站我爱水煮鱼的wordpress主题
  • 深圳坪山比亚迪最近的seo网站优化排名
  • 如何做网站网页费用做网站代理工作安全吗
  • 做网站的市场细分绿色电器公司网站psd模板
  • 网站怎么做的有创意泉州seo排名
  • 智慧团建网站登陆平台wordpress 标题字号
  • 南京有名的网站建设公司天河网站建设公司排名
  • 华东建设发展设计有限公司网站上海seo网站推广
  • 网站仿静态和静态的区别网站备案拍照背景幕布
  • 老鹰主机做的网站南通网站建设策划书
  • 站酷设计网站官网入口免费个人海报网站开发 旅游
  • 网站开发算互联网公司吗江苏百度推广代理商
  • 做网站要多少钱一个沧州有没有做网站的
  • 建e网官方网站求个网站没封的
  • 淄博高端网站建设乐达郑州做营销型网站公司