匿名
函数可以有效地保证页面上Javascript的编写,而不会造成全局变量的污染。
当添加Javascript到不熟悉的页面时,这是非常有效和优雅的。
1。什么是匿名函数
在Javascript中定义函数有三种
方法,如下所示:
函数关键字(函数)语句:
功能fnmethodname(x){ alert(x);}
函数字面量(函数
文本):
无功fnmethodname =函数(x){ alert(x);}
函数()构造函数:
无功fnmethodname =新的函数(x,'alert(x);')
以上三种方法定义相同的方法的功能,fnmethodname,
第一种是最常用的方法,后者是
复制一个函数的变量fnmethodname,这个功能是没有
名字的,那就是匿名函数。
事实上,相当多的
语言都有匿名函数。
二、函数文本与函数()构造函数的
区别 尽管函数字面是一个匿名函数,但是语法允许分配任何函数名。在编写递归函数时,它可以调用自己,并使用函数()构造函数。
var =函数(x){如果事实(x≤1)返回1;否则返回××事实(X-1);};
功能()构造函数允许Javascript代码的动态生成和编译时它允许
运行。在这方面,它类似于全局函数eval()。
()构造函数的函数解析函数的函数体,每次
执行时,会
创建一个新的函数对象,调用函数的效率()在一个圆形的或频繁执行的函数的构造函数很低。相反,该函数字面量不重新编译一次。
当函数()构造函数创建一个函数时,它并不遵循一个典型的
作用域,它总是把它作为一个顶级函数使用。
全局;
功能constructfunction(VAR){ y =地方;返回
新功能(返回Y); / /无法获取局部变量报警(constructfunction)}(()); / /定义与函数输出全球功能关键词()构造函数有特殊困难的使用比自己,
所以这种技术通常很少使用。
函数字面表达式与函数关键字的定义非常接近。
考虑到以前的差异,虽然有
消息说一个匿名函数的数量,有一些WebKit引擎
错误OS X 10.4.3下。
但是我们通常说的匿名函数引用函数形式的匿名函数。
三,匿名函数的代码
模式 错误模式:它不能
工作,
浏览器会
报告错误的语法。
函数(){警报(1);}();
函数文字:首先,声明一个函数对象,然后执行它。
(函数(){警报(1);})();
优先表达:
(函数(){警报(2);}());
空
操作符:
空函数(){警报(3);}(),这三种方法是相同的。Hedger Wang喜欢第三种个人
原因,但在实际应用中,第一种是使用。
四、匿名函数的应用
Javascript模型中的第一句话是,全局变量是魔鬼。
使用var关键字,匿名函数可以有效地保证页面上Javascript的编写,而不会造成全局变量的污染。
当添加Javascript到不熟悉的页面时,这是非常有效和优雅的。
事实上,小唯和其相应的范例使用了大量的匿名函数,和许多其他的Javascript库的大量使用。
Javascript函数编程的基石(函数式编程)。
请看使用函数式编程编写优雅的Javascript和功能性Javascript编程指南。
和优缺点在上面的Javascript匿名函数使用的是萧边
分享给你的全部内容。我希望能给你一个
参考,我希望你会得到很多
支持。