摘要: 闭包 是指语法域位于某个特定的区域,具有持续参照(读写)位于该区域内自身范围之外的执行域上的非持久型变量值能力的段落。这些外部执行域的非持久型变量神奇地保留它们在闭包最初定义(或创建)时的值(深连结)。简单来说,闭包就是在另一个作用域中保存了一份它从上一级函数或作用域取得的变量(键值对),而这些键值对是不会随上一级函数的执行完成而销毁。 闭包可以用在许多地方。它的最大用处有两个可以读取函数内部的变量让这些变量的值始终保持在内存中 让我们看一下下面的例子: function fun() { var a = 2; //为了访问fun()中的a return functio... 阅读全文
posted @ 2012-03-25 11:11 失落心灵 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 作用域 一个变量如果定义在函数里,那么在函数外面是不可以访问的。 function f(){ var b = 1; } //不可访问 document.write(b); 但是如果你一个变量定义在一个代码块中(一个if或者for 循环里)在代码块外面是可以访问的。 for (var i = 0; i < 3; i++) {} //可访问 document.write(i); JavaScript中的函数运行在它们被定义的作用域里,而不是它们被执行的作用域里 function fun01() { var a = 2; ... 阅读全文
posted @ 2012-03-25 10:45 失落心灵 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 函数重写自己 <script type="text/javascript"> function returnFunction() { alert("aaaaa"); //函数returnFunction在其内部重写自己 returnFunction = function () { alert("bbbbb"); } } //第一次alert("aaaaa"); returnFunction(); //第二次alert("bbbbb"); //调整了全局变量returnFunction 阅读全文
posted @ 2012-03-25 10:31 失落心灵 阅读(391) 评论(0) 推荐(0) 编辑
摘要: 返回函数的函数 一个函数总是会返回一个值,如果你没有显式的return,那么就会隐式的返回undefined。一个函数只可以返回一个数据,并且这个数据当然也可以是一个函数。 让我们看一下下面的例子: function returnFunction() { alert("aaaaa"); return function () { alert("bbbbb"); } } 你可以把返回值分配给一个变量,并且可以像使用普通的函数那样使用这个变量。 //returnFunction()相当于调用了returnFunction函数,并且执行了操作ale... 阅读全文
posted @ 2012-03-25 10:25 失落心灵 阅读(783) 评论(0) 推荐(0) 编辑
摘要: 匿名函数 顾名思义就是没有名字的函数下面说一下它的两个用途:你可以把匿名函数作为一个参数传递给其它函数。你可以定义一个匿名函数并立马执行它回调函数 因为函数就跟那些可以分配给变量的数据一样,它可以定义,删除,拷贝,所以也可以作为参数传递给函数,简单来说回调函数就是把函数作为参数来用看一下下面的例子,也是匿名函数的用途之一<script type="text/javascript"> function one() {return 1;} function two() {return 2; } function sum(a, b) { return a() + b( 阅读全文
posted @ 2012-03-25 10:14 失落心灵 阅读(4791) 评论(0) 推荐(0) 编辑
摘要: JavaScript 中的函数实际上是数据。这也就是说下面的2 种定义函数的方式是完全一样的。function f(){return 1;}var f = function(){retrun 1;}第二种定义函数的方式也被称为“文本标记型”函数两种定义函数的区别: 第二种定义函数的缺点,有位置的限制,而第一种没有,我们看一下下面的例子<script type="text/javascript"> //这也就是说下面的2 种定义函数的方式是完全一样的。 function fun01() { } var fun02 = function () { } //结果是fu 阅读全文
posted @ 2012-03-25 09:54 失落心灵 阅读(1047) 评论(2) 推荐(0) 编辑