JavaScript中的函数,也是一个对象,函数对象有所有普通对象有的性质。还可以在这个对象中封装一些功能,保存一些代码,在需要的时候调用这些代码,用typeof查看时,会返回类型:function。
<script type="text/javascript">
var fun = new Function("console.log('这是一个函数');");
fun()
</script>
将要封装的代码以字符串的形式传递给构造函数,在调用的时候执行封装的代码。
function [函数名称]([形参列表]) {
[函数要执行的语句]
}
方式三:使用函数表达式创建一个函数
<script type="text/javascript">
function fun(){
console.log("这是一个函数");
}
fun();
</script>
<script type="text/javascript">
var fun=function(){
console.log("这是一个函数");
}
fun();
</script>
在定义函数的时候,可以给函数的()中制定一个或者多个形参,多个形参之间用逗号分隔,这种声明形式就相当于在函数内部声明了对应的变量。
在调用函数的时候,可在()中制定实参,调用函数时,解析器不会检查实参类型,也不会检查实参的数量,多余的实参不会被赋值,缺少的实参会用undefined补齐。
<script type="text/javascript">
function fun(a,b,c){
console.log("这是一个函数,打印变量的值",a,b,c);
}
fun(1,2,3,4);
</script>
<script type="text/javascript">
function fun(a,b,c){
console.log("这是一个函数,打印变量的值",a,b,c);
}
fun(1,2);
</script>
可以使用return来设置函数的返回值,return的值将会作为函数的执行结果,可以定义一个变量来接收返回值。
在函数中,return后的语句都不会被执行,return后面不写任何值,或者没有return相当于返回undefined,return后面可以跟任意类型的返回值,也可以直接返回函数。
<script type="text/javascript">
function fun(a,b,c){
console.log("这是一个函数,打印变量的值",a,b,c);
return 123;
}
aa = fun(1,2);
console.log("这个函数的返回值是",aa);
</script>
<script type="text/javascript">
function fun(a,b,c){
console.log("这是一个函数,打印变量的值",a,b,c);
return fun;
}
aa = fun(1,2); //aa也是一个函数,也可以被调用
console.log("这个函数的返回值是",aa);
console.log("调用aa",aa(4,5));
</script>
定义后马上执行的函数,往往只能执行一次,立即执行函数也可以传参。
<script type="text/javascript">
(function(){alert("我是一个匿名函数,且被马上执行了")})();
</script>
如果一个函数作为一个对象的属性保存,那么我们就称这个函数是这个对象的方法,调用函数就是调用对象的方法。