一、通常函数定义并调用
二、自调用匿名函数
使用自调用匿名函数的写法,当页面加载的时候, 就直接运行该函数,不需要再调用它。
或者把函数名去掉以简化代码:
注意:第二组圆括号()意味着:“Execute!”(执行),即使没有参数,也不能去掉;
通过定义一个匿名函数,创建了一个命名空间,该命名空间的变量和方法,不会破坏全局的命名空间,这点是每个JS框架所必须的。
匿名函数从语法上叫函数直接量,JavaScript语法需要包围匿名函数的括号,自调用匿名函数有两种写法:
(function(name) {alert("Hello " + name);})("Lion");和(function(name) {alert("Hello " + name);}("Lion"));
区别在于把函数的调用是否放到匿名函数的右括号内;function被()括起来后被javascript引擎作为function表达式处理。
关联知识:闭包是指在一个函数内部定义一个函数指向外部函数的一个成员变量,并且内部定义的这个函数访问外部函数中定义的临时变量。
三、关于jQuery
这是一个自调用匿名函数,定义一个命名空间,达到不与全局的变量冲突的目的。传入window参数变量,使window由全局变量变为局部变量,在jQuery中可更快访问window。同时作为参数传入,可在压缩代码进行优化,减小代码文件大小。
关于jQuery的plugin
function a(){ } a(); 或 var a = function(){ } a();
二、自调用匿名函数
使用自调用匿名函数的写法,当页面加载的时候, 就直接运行该函数,不需要再调用它。
(function doSomething() {alert("Hello World");})();
或者把函数名去掉以简化代码:
(function() {alert("Hello World");})();
注意:第二组圆括号()意味着:“Execute!”(执行),即使没有参数,也不能去掉;
通过定义一个匿名函数,创建了一个命名空间,该命名空间的变量和方法,不会破坏全局的命名空间,这点是每个JS框架所必须的。
匿名函数从语法上叫函数直接量,JavaScript语法需要包围匿名函数的括号,自调用匿名函数有两种写法:
(function(name) {alert("Hello " + name);})("Lion");和(function(name) {alert("Hello " + name);}("Lion"));
区别在于把函数的调用是否放到匿名函数的右括号内;function被()括起来后被javascript引擎作为function表达式处理。
关联知识:闭包是指在一个函数内部定义一个函数指向外部函数的一个成员变量,并且内部定义的这个函数访问外部函数中定义的临时变量。
三、关于jQuery
(function( window, undefined ) { // jquery code })(window);
这是一个自调用匿名函数,定义一个命名空间,达到不与全局的变量冲突的目的。传入window参数变量,使window由全局变量变为局部变量,在jQuery中可更快访问window。同时作为参数传入,可在压缩代码进行优化,减小代码文件大小。
关于jQuery的plugin
(function($) {$.fn.myPlugin = function(){};})(jQuery);