标签:
Javascript脚本语言允许开发者通过编写函数的方式组合一些可重复使用的代码块,增加了脚本代码的结构化和模块化。函数是通过参数接口进行数据传递,以实现特定的功能。
函数的创建大致有三种方法:
方法一:function functionName([parameters]){functionBody};
Example:
function add(a,b) { return a + b; } //alert(add(2,3));
当我们这样声明函数时,函数的内容被解释(只有调用函数时,才会执行),同时一个名为Add的对象被创建。
方法二:将一个匿名函数赋值给一个变量(var)
Example a:
var add = function (a,b) { alert(a+b); } //add(3,4);
这种声明的语法看起来怪异,但是它能更好的让我们理解“函数即对象”。通过这种方式声明的函数同样是被执行而没有被执行。
Example b:
var obj = new Object(); obj.add = function (a,b) { alert(a+b); } //obj.add(1,10);
这个例子表明,当我们需要将一个自定义函数作为某个对象的属性时,这种函数的定义方式是非常有用的。
方法三:通过Function对象来创建函数
语法:var Name=new Function([param1Name, param2Name,...paramNName], functionBody);
var add = new Function("a", "b", "alert(a+b)"); //add(2,4);
Function是对象(创建函数的对象)。实际上,在javascript中声明一个函数本质上为创建Function对象的一个实例,而函数名则为实例名。
与其他程序设计语言不同,javascript不会验证传递给函数的参数个数是否等于函数定义的参数个数。如果传递的参数个数与函数定义的参数个数不同,则函数执行起来有可能会产生一些意想不到的错误,任何遗漏的参数都会以Undefined传递给函数,多余的参数将忽略。为了避免错误,应该让传递的参数个数与函数定义的参数个数相等。在javascript中提供了一个arguments数组对象,该对象可以获取从javascript代码中传递给函数的参数。
Example:
function add(x,y) { if (arguments.length != 2) { var str = "传递的参数个数有误,一共传递了" + arguments.length + "个参数,分别为:\n"; for (var i = 0; i < arguments.length; i++) { str += "第" + (i + 1) + "个参数的值为:" + arguments[i] + "\n"; } return str; } else { var z = x + y; return z; } } console.log("add(2,4,6):"+add(2,4,6));
运行结果:
注:可以通过typeof来判断函数参数传递的类型。
标签:
原文地址:http://www.cnblogs.com/YanYongSong/p/4630584.html