Function:描述方法的对象,在javascript里面,方法就是一个对象,而不像java方法只是对象的一部分。
* 创建,有如下方式:
(1) var fun = new Function(形式参数,方法体) ===>这个方式只做了解
var fun1 = new Function("a","alert(a);");
fun1(1);
(2) function 方法名称(形参列表){
方法体
}
(2) var 方法名 = function(形参列表){
方法体
}
* 方法:
* 属性:
(1) length:代表形参的个数
* 特点
(1) 定义方法时,形参类型可以不用谢,返回值类型也可以不用写
(2) 方法时一个对象,如果同时定义了名称相同的方法,则是后面方法覆盖前面方法,不存在像JAVA的方法重载。
(3) 在JS中,方法的调用只与方法的名称相关,和参数列表无关。比如我们定义时形参只有两个,在调用时可以传入任意个,甚至是不传。
(4) 对于上面(3)中的问题,在jsscipt的方法中,隐含一个内置对象(数组)argument,它会会将传入参数放到该数组中
* 调用方法:方法名称(实际参数列表)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>对象</title>
<script>
// 方式一
var fun1 = new Function("a","b","document.write('1:'+(a+b));");
fun1(1,1);
document.write("<br>")
// 方式二
function max_Sel(a,b){
return a>b?a:b;
}
var ret = max_Sel(10,21);
document.write("2:"+ret);
// document.write("<br>");
// 方式三
var fun2 = function(a,b){
document.write("3 a+b:"+(a+b)+"<br>");
document.write("4 数组长度:"+arguments.length +"<br>");
var sum = 0;
for (var i=0; i<sum;i++){
sum+=i;
}
return sum;
}
document.write("<br>");
var ret = fun2(1,2,3,4,5,6,7);
document.write("5 返回结果"+ret);
</script>
</head>
<body>
</body>
</html>