javascript匿名函数入门实例教程

发布时间:2019-12-21编辑:脚本学堂
有关javascript匿名函数的用法,js匿名函数的入门实例,以及javascript中构造函数、函数式定义、函数重写的方法,需要的朋友参考下。

例子:
 

复制代码 代码示例:
var f = (function() {
 function f() {return 10;}
 return f();
function f() {return 20;}
var f = 30;
})();
console.log(f);

javascript函数--可以封装任意多条语句,而且可以在任何地方、任何时候调用执行。
之前介绍过了strict mode,严格模式对函数有一些限制:
不能把函数命名为eval或arguments
不能把参数命名为eval或arguments
不能出现两个命名参数同名的情况
发生以上情况就会导致语法错误,代码无法执行。

函数定义
函数定义分为三种
1、构造函数
 

var fun = new Funciton();

2、普通定义
 

function fun() {}

3、函数式定义
var fun = function() {};
这三种方式都可以定义函数fun。

参数
函数不介意传递进来多少个参数,也不在乎传进来的参数是什么数据类型。即便你定义的函数只接收两个参数,在调用这个函数时也未必一定要传递两个参数。
可以传递一个、三个甚至不传递参数。原因是参数在内部是用一个数组来表示的。

在函数体内可以通过arguments对象来访问参数数组,例子:
 

function sayHi() {
alert("Hello " + arguments[0] + "," + arguments[1]);
}
 

通过访问arguments对象的length属性来获知有多少个参数。函数的length会返回函数的参数个数。
注意:所有参数传递的都是值,不可能通过引用传递参数。

函数不能重载,只能重写
如果定义了两个名字相同的函数,则该名字只属于最后定义的函数。

例子:
 

复制代码 代码示例:
function add(num) {
 return num + 100;
}
 
function add(num) {
   return num + 200;
}
var result = add(100) //300

注意:函数在执行完return语句之后停止并立即退出。
函数种类
函数分为两种一种是有名函数,另一种是匿名函数。例如下面的有名函数
function fun() {
}
如果调用的话,只需要fun()就可以。

匿名函数,顾名思义就是没有函数名。

例如:
function() {}
函数调用是通过函数名来调用,匿名函数怎么调用呢?
一种就是将匿名函数赋给一个变量,让这个变量充当函数名。另一种就是用()来调用,例如下面三种方法
1、(function() {return;}());
2、(function() {return;})();
3、function() {return;}();

例子:
 

复制代码 代码示例:
(function(x, y) {
 ?alert(x + y);
})(2,3);
//alert(5)
 

2和3将会作为参数传递给x和y

再来说下最上面的例子,这个例子中涉及到闭包,后面会说。
首先,定义一个变量f,然后赋值一个匿名函数,注意函数中所有变量的定义都会被前置,所以匿名函数里的执行顺序:
 

复制代码 代码示例:
var f = (function() {
 var f;
 function f() {
   return 10;
 }
 function f() {
  return 20;
 }
return f();
f = 30;
})();
 

注意,外面的变量f和里面的变量f不在同一个作用域内(闭包),所以互不影响。


因为函数不能重载,所以外面变量f=(function f() {return 20;})();,所以最终输出的是20。