重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1、配合var关键字,匿名函数可以有效的保证在页面上写入Javascript,而不会造成全局变量的污染。这在给一个不是很熟悉的页面增加Javascript时非常有效,也很优美。
岳池网站建设公司创新互联,岳池网站设计制作,有大型网站制作公司丰富经验。已为岳池成百上千提供企业网站建设服务。企业网站搭建\成都外贸网站建设公司要多少钱,请找那个售后服务好的岳池做网站的公司定做!
2、《Javascript的一种模块模式》中的第一句话就是“全局变量是魔鬼”。配合var关键字,匿名函数可以有效的保证在页面上写入Javascript,而不会造成全局变量的污染。这在给一个不是很熟悉的页面增加Javascript时非常有效,也很优美。实际上,YUI以及其相应的范例中大量使用匿名函数,其他的Javascript库中也不乏大量使用。Javascript的函数式编程(functional programming)的基石。具体请看《用函数式编程技术编写优美的 JavaScript》和《函数式JavaScript编程指南》。
3、要说匿名函数,我们首先要由函数本身说起。函数的定义如下:函数是将唯一的输出值赋予给每一输入的“法则”。当然,这只是数学上的定义。但是,在计算机编程语言中,函数的定义也八九不离十。因为我们都知道,计算机中的函数,也类似数学定义中的描述,它是将输入的若干数据,经过代码设定的逻辑操作处理后,返回唯一的输出的一组代码组合块。——当然,特例是,输入的数据为空或输出的数据为空,或者两者都为空。
匿名函数在声明时不用带上函数名, 可以把匿名函数当作一个function类型的值来对待
声明一个普通的函数 function func() { ... } 可以认为和var func = function() { ... };相同, 但是普通函数会自动把函数名"提到"作用域的最前面, 基本上普通函数和匿名函数就只有这一个区别
function xxx() {
foo(); //foo被提到了作用域的最前面, 于是这里可以正常调用foo函数
bar(); //这里会报错bar是个undefined
function foo(){}
var bar = function(){};
}
javascript中: (function(){})()是匿名函数,主要利用函数内的变量作用域,避免产生全局变量,影响整体页面环境,增加代码的兼容性。
(function(){})是一个标准的函数定义,但是没有复制给任何变量。所以是没有名字的函数,叫匿名函数。没有名字就无法像普通函数那样随时随地调用了,所以在他定义完成后就马上调用他,后面的括号()是运行这个函数的意思
扩展资料
函数声明:使用function声明函数,并指定函数名。
function setFn() { // coding }
函数表达式:使用function声明函数,但未指定函数名,将匿名函数赋予一个变量。
var setFn = function() { // coding}
匿名函数:使用function关键字声明函数,但未指定函数名。匿名函数属于函数表达式,匿名函数有很多作用,赋予一个变量则创建函数,赋予一个事件则成为事件处理程序或创建闭包等等。
function() { // coding}
参考资料:百度百科 - javascript
(function($){...})(jQuery),这意味着定义并执行一个使用参数jQuery并通过形式参数$接收匿名函数的匿名函数。
分析:
1,匿名函数定义:javasript函数(arg){...},这种形式在javascript中称为匿名函数。 Arg是匿名函数的参数。
2,匿名函数调用:调用函数时,括号和参数写在函数之后。由于运算符的优先级,函数本身需要使用括号,即:(function(arg){...})(Param)这等效于使用参数arg定义匿名函数并使用param调用此匿名函数作为参数。
3,(function($){...})(jQuery)是使用实际参数jQuery定义和执行匿名函数,原因是在正式参数中使用$,以免与其他库冲突,因此实际参数使用jQuery。
4,等效形式:var fn = function($){....}; fn(jQuery);实际上,这是可以理解的,但是应该注意,fn不存在,直接定义函数,然后运行。只需“压缩”为以下(function($){...})(jQuery)。
扩展资料:
匿名函数的声明和使用:
首先,声明一个直接分配给事件的匿名函数;
Window.onload = function(){};
使用匿名函数表达式。将匿名函数分配给变量。
声明:var func = function(){};
呼叫:func();
自我执行功能:
可以从各种运算符开始但是普遍使用! ,如:!函数(参数列表){}(参数列表)。
使用()包装函数和函数后的括号,例如:(function(){}());
使用()值包装函数值,例如:(function(){})();
参考资料:百度百科-javascript
参考资料:百度百科-Javascript权威指南
JavaScript的函数定义分为函数声明和函数表达式。
表达式语句不得以 function 或者 { 开头:
ExpressionStatement → [lookahead ∉ {{, function}] Expression;
”裸写“成function fname() { }的,是函数声明,它不能是匿名的。
var c = 1;
function test(x) {
console.log(x);
}
// 调用
test(x);
嵌套定义的函数也可以是函数声明。
// innder、outer都是函数声明,只不过外界无法使用inner函数。。
function outer() {
var x = 1;
function inner() {
console.log("Hi");
}
}
函数作为表达式出现、或者作为其他表达式的一部分时才是函数表达式(有点绕。。),此时函数可以是匿名或者有名的。
比如赋值表达式的右边;()和[]里面;!等符号后面;return语句后面;。。
var foo = function() {
...
};
(function foo() {});
[Function bar() {}];
function outer() {
var x = 1;
return function inner() {
console.log(x);
}
}
描述不同语法结构的语义时,主要和表达式的求值相关。比如赋值的时候需要对=右边的表达式求值,return的时候需要对return后面的求值。
函数表达式的值可以是一个函数对象,或者对这个函数对象进行调用(也就是执行它)产生的结果。
// =右边表达式的”值“是一个函数对象,赋给t。不发生函数调用
var t = function () {
console.log(3);
};
// =右边表达式,先创建函数对象再调用它。t是5
var t = function (x) {
return x + 2;
}(3);
函数声明自身不能“求值”。