JS函数
- 函数也是一个对象
- 函数中可以封装一些功能(代码),在需要时可以执行这些功能(代码)
- 函数中可以保存一些代码在需要的时候调用
- 使用typeof检查一个函数对象时,会返回function
- 封装到函数中的代码不会立即执行,会在调用的时候执行
1、创建函数
- 使用函数声明来创建一个函数
- 语法:
- function 函数名([形参1,形参2…形参N]){
语句…
} */
function fun2(){
console.log("这是我的第二个函数~~~");
alert("哈哈哈哈哈");
document.write("~~~~(>_<)~~~~");
}
console.log(fun2);
fun2();
- 使用函数表达式来创建一个函数
- 语法:
- var 函数名 = function([形参1,形参2…形参N]){
语句…
}
- 其中
function([形参1,形参2...形参N]){ 语句...}
叫做匿名函数
function(){
console.log("我是匿名函数中封装的代码");
}
var fun3 = function(){
console.log("我是匿名函数中封装的代码");
}
fun3();
2、函数的参数(略)
- 形参
- 实参
- 实参可以是任意的数据类型,也可以是一个对象,一个函数(可以将函数的返回值作为参数再做实参)
function sayHello(o){
console.log("我是"+o.name+",今年我"+o.age+"岁了,"+"我是一个"+o.gender+"人,"+"我住在"+o.address);
};
var obj = {
name: "孙悟空";
age: 18;
gender: "男",
address: "花果山"
};
sayHello(obj);
3、函数的返回值(略)
- 返回值可以是任意的数据类型
- 可以是对象
- 可以是对象的属性
- 可以是函数,再函数内部再声明一个函数
function fun4() {
function fun5(){
console.log("我是fun5")
}
return fun5;
}
a = fun4;
console.log(a);
----------------------------------------------------------------
function fun4() {
function fun5(){
console.log("我是fun5")
}
return fun5();
}
a = fun4;
a();
fun4()();
4、立即执行函数
- 函数定义完,立即被调用,这种函数叫做立即执行函数
- 立即执行函数只会执行一次
<script type="text/javascript">
(function(){
alert("我是一个匿名函数~~~");
})();
(function(a,b){
console.log("a = "+a);
console.log("b = "+b);
})(123,456);
</script>
5、对象中的方法
- 函数也可以称为对象的属性,如果一个函数作为一个对象的属性保存,那么我们称这个函数是这个对象的方法
- 调用这个函数就说调用对象的方法(method)
- 但是它只是名称上的区别没有其他的区别
<script type="text/javascript">
var obj = new Object();
obj.name = "孙悟空";
obj.age = 18;
obj.sayName = function(){
console.log(obj.name);
};
--------------------------
function fun(){
console.log(obj.name);
};
obj.sayName();
--------------------------
fun();
===============================================================
var obj2 = {
name:"猪八戒",
age:18,
sayName:function(){
console.log(obj2.name);
}
};
obj2.sayName();
</script>