学习内容:函数
1. 函数的两种定义方式:
1.1、第一种:可以使用 function 关键字来定义函数。
格式:
function 函数名(形参列表){
函数体
}
例子:
<script type="text/javascript">
// 定义一个无参函数
function fun(){
alert("无参函数fun()被调用了");
}
//调用fun()函数
//函数只有调用才会执行
fun();
//和Java不一样,JavaScript里面的有参函数,里面的参数不用定义类型
function fun2(a ,b) {
alert("有参函数fun2()被调用了 a=>" + a + ",b=>"+b);
}
//调用fun2(a,b)函数
fun2(12,"abc");
// 定义带有返回值的函数
function sum(num1,num2) {
var result = num1 + num2;
return result;
}
//调用sum(num1,num2)函数
alert( sum(100,50) );
</script>
运行结果:
1.2、第二种方式:使用格式如下:
var 函数名 = function(形参列表)
例子:
<script type="text/javascript">
var fun = function () {
alert("无参函数");
}
fun();
var fun2 = function (a,b) {
alert("有参函数a=" + a + ",b=" + b);
}
fun2(1,2);
var fun3 = function (num1,num2) {
return num1 + num2;
}
alert( fun3(100,200) );
</script>
运行结果:
注意:在Java种允许函数重载,但是在JS中函数的重载会直接覆盖掉上一次的定义。
例子:
<script type="text/javascript">
function fun() {
alert("无参函数fun()");
}
function fun(a,b) {
alert("有参函数fun(a,b)");
}
fun(1,"ad");
</script>
2. 函数的arguments隐形参数(只在 function 函数内)
就是在 function 函数中不需要定义,但却可以直接用来获取所有参数的变量。我们管它叫隐形参数。
隐形参数特别像 java 基础的可变长参数一样。
public void fun( Object ... args );
可变长参数其他是一个数组。
那么 js 中的隐形参数也跟 java 的可变长参数一样。操作类似数组。
<script type="text/javascript">
function fun(a) {
alert( arguments.length );//可看参数个数
//查看参数的值
alert( arguments[0] );
alert( arguments[1] );
alert( arguments[2] );
//遍历
for (var i = 0; i < arguments.length; i++){
alert( arguments[i] );
}
alert("无参函数fun()");
}
fun(1,"ad",true);
</script>
3. js中的自定义对象
3.1、Object 形式的自定义对象
对象的定义:
var 变量名 = new Object(); // 对象实例(空对象)
变量名.属性名 = 值; // 定义一个属性
变量名.函数名 = function(){} // 定义一个函数
对象的访问:
变量名.属性 / 函数名();
例:
<script type="text/javascript">
var obj = new Object();
obj.name = "张启龙";
obj.age = 30;
obj.fun = function () {
alert("姓名:" + this.name + " , 年龄:" + this.age);
}
obj.fun();
</script>
3.2、{}花括号形式的自定义对象
对象的定义:
var 变量名 = { // 空对象
属性名:值, // 定义一个属性
属性名:值, // 定义一个属性
函数名:function(){} // 定义一个函数
};
对象的访问:
变量名.属性 / 函数名();
例子:
<script type="text/javascript">
var obj = {
name:"Serein",
age:20,
fun : function () {
alert("姓名:" + this.name + " , 年龄:" + this.age);
}
};
obj.fun();
</script>