jtwang7 / JavaScript-Note

JavaScript学习笔记
10 stars 2 forks source link

JS 函数的四种调用方式 #31

Open jtwang7 opened 3 years ago

jtwang7 commented 3 years ago

一、一般形式

在默认状态下,函数是不会被执行的。使用小括号()可以激活并执行函数。在小括号中可以包含零个或多个参数,参数之间通过逗号进行分隔。

function f(x,y) {  //定义函数
    return x * y;  //返回值
}
f(5, 6)

二、作为对象的方法调用

当一个函数被设置为对象的属性值时,称之为方法。使用点语法可以调用一个方法。

let obj = {
    value : 0,
    increment : function (inc) {   
        this.value += typeof inc === 'number' ? inc :1;
    }
}
obj.increment();

三、使用 call 和 apply 动态调用

call 和 apply 是 Function 的原型方法,它们能够将特定函数当做一个方法绑定到指定对象上,并进行调用。

function.call(thisobj, args...)
function.apply(thisobj, [args])

function 表示要调用的函数;参数 thisobj 表示绑定对象,即 this 指代的对象;参数 args 表示要传递给被调用函数的参数。call 方法可以接收多个参数列表,而 apply 只能接收一个数组或者伪类数组,数组元素将作为参数列表传递给被调用的函数。

四、new 命令间接调用

使用 new 命令可以实例化对象,这是它的主要功能,但是在创建对象的过程中会激活并运行函数。因此,使用 new 命令可以间接调用函数。

function (x,y) {  //定义函数
    console.log("x =" + x + ", y =" + y);
}
new f(3,4);

使用 new 命令调用函数时,返回的是对象,而不是 return 的返回值。如果不需要返回值,或者 return 的返回值是对象,则可以选用 new 间接调用函数。