js函数的定义与调用
1、 函数的定义
三种方式:
①函数定义(简单讲就是使用function关键字开头定义),如下:
<body>
<button οnclick="sum(2,3)">点击求和</button>
</body>
1
2
3
<script>
//函数定义
function sum(a,b){
console.log(a,b);
return("你的和值为:"+a+b);
};
</script>
1
2
3
4
5
6
7
结果:结果控制台输出2,3
②函数表达式(函数字面量,简单讲就是用一个变量将函数存起来),如下图:
// 函数字面量
var fun = function(a,b){
return a+b;
};
1
2
3
4
5
重点:
两者的区别:解析器会先读取函数声明,并使其在执行任何代码之前可以访问;而函数表达式则必须等到解析器执行到它所在的代码行才会真正被解释执行。
③函数构造法(简单讲就是使用new关键字创建)
// 函数构造法
var fun = new Function("a",'b','return a+b');
console.log(fun(3,6));//9
1
2
3
4
5
注意:Function大写开头,参数必须带引号(单双没关系,返回值也带引号)
2、函数的调用
①直接调用
var fun = function(){
alert(fun);//窗口弹出整个函数
};
fun();
1
2
3
4
5
②方法调用模式
当函数赋值给对象之后,函数不该称为函数,我们称之为为方法
var sum = function(){
alert("方法调用模式哦")
}
var stu ={};
stu.one = sum;
//调用
stu.one();//窗口输出alert语句内容
1
2
3
4
5
6
7
8
③构造器调用函数
//定义构造函数
var Num = function(){
this.name = "jane";
this.say = function(){
alert("这是构造器方法调用函数")
};
};
//调用构造器,创建对象
var n = new Num();
//使用对象
n.say();
1
2
3
4
5
6
7
8
9
10
11
注解:
在单纯的函数模式下,this 表示 window;在对象方法模式下,this 指的是当前对象
代码解读:
上面的案例首先创建一个构造函数Person,然后使用构造函数创建对象n。使用 new 语法;然后在使用对象调用say()方法,从案例可以看此时 this 指的是对象本身。除了上面简单的使用以外,函数作为构造器还有几个变化,分别为:
1、所有需要由对象使用的属性,必须使用 this 引导;
2、函数的 return 语句意义被改写,如果返回非对象,就返回this。
④apply调用模式
**语法:**函数引用.apply(调用者,[参数1,参数2,…])
<script>
var A=function(a,b)
{
alert("a的值是:"+a+",b的值是:"+b);
}
A.apply(window,[1,2]);//以window为调用对象,
//1、2为传入参数,调用A函数
</script>