方法:1、用“函數(shù)名(參數(shù),參數(shù))”語句調(diào)用;2、作為對象的方法調(diào)用,語法“對象名.方法名()”;3、用call或apply調(diào)用,語法“函數(shù)名.call|apply(參數(shù),參數(shù))”;4、用new命令,語法“new 函數(shù)名(參數(shù),參數(shù))”。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
JavaScript 提供了 4 種函數(shù)調(diào)用:一般形式的函數(shù)調(diào)用、作為對象的方法調(diào)用、使用 call 和 apply 動(dòng)態(tài)調(diào)用、使用 new 間接調(diào)用。
1、一般形式的函數(shù)調(diào)用
在默認(rèn)狀態(tài)下,函數(shù)是不會(huì)被執(zhí)行的。使用小括號(hào)()可以激活并執(zhí)行函數(shù)。在小括號(hào)中可以包含零個(gè)或多個(gè)參數(shù),參數(shù)之間通過逗號(hào)進(jìn)行分隔。
在下面示例中,使用小括號(hào)調(diào)用函數(shù),然后直接把返回值傳入函數(shù),進(jìn)行第二次運(yùn)算,這樣可以節(jié)省兩個(gè)臨時(shí)變量。
function f(x,y) { //定義函數(shù) return x * y; //返回值 } console.log(f(f(5,6), f(7,8))); //返回1680。重復(fù)調(diào)用函數(shù)
2、作為對象的方法調(diào)用
在 JavaScript 中你可以將函數(shù)定義為對象的方法。
以下實(shí)例創(chuàng)建了一個(gè)對象 (myObject), 對象有兩個(gè)屬性 (firstName 和 lastName), 及一個(gè)方法 (fullName)
var myObject = { firstName:"John", lastName: "Doe", fullName: function () { return this.firstName + " " + this.lastName; } } myObject.fullName(); // 返回 "John Doe"
3、使用 call 和 apply 動(dòng)態(tài)調(diào)用
call 和 apply 是 Function 的原型方法,它們能夠?qū)⑻囟ê瘮?shù)當(dāng)做一個(gè)方法綁定到指定對象上,并進(jìn)行調(diào)用。具體用法如下:
function.call(thisobj, args…)
function.apply(thisobj, [args])
function 表示要調(diào)用的函數(shù);參數(shù) thisobj 表示綁定對象,即 this 指代的對象;參數(shù) args 表示要傳遞給被調(diào)用函數(shù)的參數(shù)。call 方法可以接收多個(gè)參數(shù)列表,而 apply 只能接收一個(gè)數(shù)組或者偽類數(shù)組,數(shù)組元素將作為參數(shù)列表傳遞給被調(diào)用的函數(shù)。
下面示例使用 call 動(dòng)態(tài)調(diào)用函數(shù) f,并傳入?yún)?shù)值 3 和 4,返回運(yùn)算值。
function f(x,y) { //定義求和函數(shù) return x + y; } console.log(f.call (null, 3, 4)); //返回7
all 和 apply 方法的主要功能如下:
-
調(diào)用函數(shù)。
-
修改函數(shù)體內(nèi)的 this 指代對象。
-
為對象綁定方法。
-
跨越限制調(diào)用不同類型的方法。
4、new 命令間接調(diào)用
使用 new 命令可以實(shí)例化對象,這是它的主要功能,但是在創(chuàng)建對象的過程中會(huì)激活并運(yùn)行函數(shù)。因此,使用 new 命令可以間接調(diào)用函數(shù)。
下面示例簡單演示了如何用 new 命令,把傳入的參數(shù)值顯示在控制臺(tái)。
function (x,y) { //定義函數(shù) console.log("x =" + x + ", y =" + y); } new f(3,4);
【推薦學(xué)習(xí):javascript高級(jí)教程】