07.【JS函数】函数调用

参考资料: 汇智网

JavaScript函数在定义时并不会去执行,只有我们在调用定义的函数时,它才会去执行。

在JavaScript中有四种方式调用函数,如下:

  • 方法调用模式;
  • 函数调用模式;
  • 构造器调用模式;
  • apply调用模式。

1. 方法调用模式

当一个函数被保存为对象的一个属性时,我们称它为一个方法。如果调用表达式包含一个提取属性的动作(即我们在讲解对象时说的.操作符),那么它就被当做一个方法来调用。

//对象字面量
var myObj = {
    param1: 1,
    param2: 2,
    sum: function (){
    //this关键字指代当前的对象
    return this.result = this.param1 + this.param2; 
    }
}
myObj.sum(); //=>3

2. 函数调用模式

函数调用模式即通常的函数调用,属于全局性调用。如下:

var add = function(a, b){
    return a + b;
}
//函数调用模式
add(1,2);  //=>3

上述代码等价于:

function add(a, b){
    return a + b;
}
add(1,2);//=>3

3. 构造器调用模式

JavaScript中函数还可以是构造器.

将函数作为构造器来使用的语法就是在函数调用前面加上一个new关键字. 如以下代码:

function Add() {
    this.name = "汇智网";
    this.sum = function (a, b){
        return a + b;
    }
}
// 构造器调用模式
var obj = new Add(); //obj是一个对象
obj.sum(1,2);  //=>3

上述中的代码创建了一个构造函数Add,然后使用构造函数创建对象obj。这里使用了new关键字。然后使用对象调用sum()方法。

4. apply调用模式

JavaScript中函数也是对象,也可以拥有方法。其中call()apply()用来间接的调用函数。称之为apply调用模式。

apply方法让我们构建一个参数数组传递给调用函数。它也允许我们选择this的值。 apply方法接收两个参数,第一个是要绑定给this的值,第二个就是一个参数数组。

语法:函数名.apply(对象, 参数数组);

示例:

var add = function (a, b) {
    return a + b;
}
 
add.apply(null,[1,2]);  //=>3

call方法与apply方法类似,区别在call第二参数不是一个数组而是需要列举出来。比如上述中的代码用call方法来实现,如下

var add = function (a, b) {
    return a + b;
}
add.call(null,1,2); //=>3
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容