浏览 2282 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-12-25
最后修改:2008-12-30
Functions are data这一篇是函数里比较重要的概念,那就是函数是一个数据。看个例子 function f(){return 1;} var f=function(){return 1;} 这两个函数定义都是相同的。 typeof f;
f的值为"function",所以说Javascript 的 函数是个数据类型。它有比较两个重要的特点 1.它包含了代码 2.能被执行 看个例子 var sum = function(a,b){return a+b;} var add = sum; sum=undefined; typeof sum; typeof add; add(1,2); 我们把函数sum做为一个值赋给了add,发现删除了sum不影响add的调用。所以函数也就是个正常的赋值。 匿名函数(Anonymous Functions)Javascript中,可以不用写赋值的代码,如 "abcd" 1 [1,2,3] 这样都不会报错,这些数据叫做匿名的。同样的函数做为数据也可以是匿名的 function(a){return a} 匿名函数的作用有两个 1.可以把匿名函数做为一个参数传入到另一个函数中。 2.你可以理解运行这个匿名函数 下面就会详细讨论这两个功能的作用了。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-12-29
var sum = function(a.b){return a+b;}
var add = sum; delete sum; typeof sum; typeof add; add(1,2); lz自己没有测试吧,delete是从对象中删除一个属性,或从数组中删除一个元素。你上面的delete根本就没有起作用。 |
|
返回顶楼 | |
发表时间:2008-12-30
hanjs 写道 var sum = function(a.b){return a+b;}
var add = sum; delete sum; typeof sum; typeof add; add(1,2); lz自己没有测试吧,delete是从对象中删除一个属性,或从数组中删除一个元素。你上面的delete根本就没有起作用。 不好意思,是我笔误。。这个错误并不是delete引起的 。delete是可以删除数据的。 而是 我的 function(a,b) 参数 我写为了 a.b。。。。。不好意思 笔误 |
|
返回顶楼 | |
发表时间:2008-12-30
var sum = function(a,b){return a+b;}
var add = sum; alert(typeof sum); //function delete sum; alert(typeof sum); //function alert(add(1,2)); //3 delete没有起作用 |
|
返回顶楼 | |
发表时间:2008-12-30
风雪涟漪 写道 不好意思,是我笔误。。这个错误并不是delete引起的 。delete是可以删除数据的。 而是 我的 function(a,b) 参数 我写为了 a.b。。。。。不好意思 笔误 delete可以删除数据,但是不能删除通过var来声明的变量,楼主你确实没有测试......... |
|
返回顶楼 | |
发表时间:2008-12-30
sdcyst 写道 风雪涟漪 写道 不好意思,是我笔误。。这个错误并不是delete引起的 。delete是可以删除数据的。 而是 我的 function(a,b) 参数 我写为了 a.b。。。。。不好意思 笔误 delete可以删除数据,但是不能删除通过var来声明的变量,楼主你确实没有测试......... 我是用FireBug来测试的。delete确实在网页中失效,却在firebug里好用。。 我把文章的代码修改下。呵呵 |
|
返回顶楼 | |