上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 58 下一页
摘要: 要说明闭包,for 循环是常见的例子 for (var i=1; i<=5; i++) { setTimeout(function timer() { console.log(i); }, 0) } 延迟函数的回调会在循环结束时才执行,执行循环的时候,变量的值已经变成 6 了,因此会每次输出一个 6 阅读全文
posted @ 2020-02-26 06:55 wzndkj 阅读(377) 评论(0) 推荐(0) 编辑
摘要: 上一节的闭包是为了解释如何使用闭包而人为地在结构上进行修饰,在昨天的闭包基础上,我们可以更加灵活的使用闭包 function wait(message){ setTimeout(function timer(){ console.log(message) }, 1000) } wait('hello 阅读全文
posted @ 2020-02-25 06:34 wzndkj 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 当函数可以记住并访问所在的词法作用域时,就产生了闭包,即使函数是在当前词法作用域之外执行 function foo(){ var a = 2; function bar() { console.log(a); } return bar } var baz = foo(); baz(); // 2 — 阅读全文
posted @ 2020-02-24 06:43 wzndkj 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 我们直觉上会认为 JavaScript 代码在执行时是由上到下一行一行执行的。但实际这并不完全正确 a = 2; var a; console.log(a); 这里可能会认为是 undefined,因为 var a 声明在 a = 2 之后。实际输出了 2。 console.log(a); var 阅读全文
posted @ 2020-02-23 08:52 wzndkj 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 除 JavaScript 外的很多编程语言都支持块作用域,但是 JavaScript 开发者对此并不是那么熟悉,尽管之前的标准中已经隐式的涵盖了这块内容 for(var i=0; i<10; i++) { console.log(i); } 我们把 var 写在 for 里面,通常是想在 for 循 阅读全文
posted @ 2020-02-22 10:15 wzndkj 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 立即执行函数表达式(IIFE,Immediately Invoked Function Expression) (function foo(){ var a = 3; console.log(3); })() 这种 (funciton foo(){...})()。第一个 () 将函数变成表达式,第二 阅读全文
posted @ 2020-02-21 10:30 wzndkj 阅读(384) 评论(0) 推荐(0) 编辑
摘要: 在任意代码片段外部添加包装函数,可以将内部的变量和函数定义“隐藏”起来,外部作用域无法访问包装函数内部的任何内容。 var a = 2; function foo() { var a = 3; console.log(a); // 3 } foo(); console.log(a); // 2 虽然 阅读全文
posted @ 2020-02-19 09:53 wzndkj 阅读(249) 评论(0) 推荐(0) 编辑
摘要: function foo(a){ var b = 2; // ... function bar(){ // ... } // ... var c = 3; } foo 的作用域气泡中包含了标识符 a、b、c 和 bar bar 拥有自己的作用域气泡 全局作用域也有自己的作用域气泡,它只包含了一个标识 阅读全文
posted @ 2020-02-18 09:59 wzndkj 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 如果词法作用域完全由写代码期间函数所声明的位置来定义,怎样才能在运行时来“修改”词法作用域呢?有些人喜欢特殊的办法来解决遇到的问题。我们规定词法作用域是代码写在哪里决定的,一旦决定了无法更改,因为一些问题,我们不得不更改作用域,尽管这是不被推荐的,那是什么办法,JavaScript 中有两种机制来实 阅读全文
posted @ 2020-02-17 11:24 wzndkj 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 作用域分为两种,一种是词法作用域,一种是动态作用域。事实上 JavaScrtip 并不具有动态作用域。它只有词法作用域。 如果非要从 JavaScript 中找到动态作用域,那么动态作用域是 this 的表亲。this 是 JavaScript 一个重要的机制 function foo() { co 阅读全文
posted @ 2020-02-16 08:31 wzndkj 阅读(332) 评论(0) 推荐(0) 编辑
上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 58 下一页