07.【JS函數(shù)】函數(shù)調(diào)用

參考資料: 匯智網(wǎng)

JavaScript函數(shù)在定義時并不會去執(zhí)行进倍,只有我們在調(diào)用定義的函數(shù)時纽窟,它才會去執(zhí)行填具。

在JavaScript中有四種方式調(diào)用函數(shù)偷办,如下:

  • 方法調(diào)用模式艰额;
  • 函數(shù)調(diào)用模式;
  • 構(gòu)造器調(diào)用模式椒涯;
  • apply調(diào)用模式柄沮。

1. 方法調(diào)用模式

當一個函數(shù)被保存為對象的一個屬性時,我們稱它為一個方法废岂。如果調(diào)用表達式包含一個提取屬性的動作(即我們在講解對象時說的.操作符)祖搓,那么它就被當做一個方法來調(diào)用。

//對象字面量
var myObj = {
    param1: 1,
    param2: 2,
    sum: function (){
    //this關(guān)鍵字指代當前的對象
    return this.result = this.param1 + this.param2; 
    }
}
myObj.sum(); //=>3

2. 函數(shù)調(diào)用模式

函數(shù)調(diào)用模式即通常的函數(shù)調(diào)用湖苞,屬于全局性調(diào)用屡萤。如下:

var add = function(a, b){
    return a + b;
}
//函數(shù)調(diào)用模式
add(1,2);  //=>3

上述代碼等價于:

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

3. 構(gòu)造器調(diào)用模式

JavaScript中函數(shù)還可以是構(gòu)造器.

將函數(shù)作為構(gòu)造器來使用的語法就是在函數(shù)調(diào)用前面加上一個new關(guān)鍵字. 如以下代碼:

function Add() {
    this.name = "匯智網(wǎng)";
    this.sum = function (a, b){
        return a + b;
    }
}
// 構(gòu)造器調(diào)用模式
var obj = new Add(); //obj是一個對象
obj.sum(1,2);  //=>3

上述中的代碼創(chuàng)建了一個構(gòu)造函數(shù)Add揉阎,然后使用構(gòu)造函數(shù)創(chuàng)建對象obj。這里使用了new關(guān)鍵字。然后使用對象調(diào)用sum()方法规哪。

4. apply調(diào)用模式

JavaScript中函數(shù)也是對象望浩,也可以擁有方法响驴。其中call()apply()用來間接的調(diào)用函數(shù)琼梆。稱之為apply調(diào)用模式。

apply方法讓我們構(gòu)建一個參數(shù)數(shù)組傳遞給調(diào)用函數(shù)捌臊。它也允許我們選擇this的值杨蛋。 apply方法接收兩個參數(shù),第一個是要綁定給this的值理澎,第二個就是一個參數(shù)數(shù)組逞力。

語法:函數(shù)名.apply(對象, 參數(shù)數(shù)組);

示例:

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

call方法與apply方法類似,區(qū)別在call第二參數(shù)不是一個數(shù)組而是需要列舉出來矾端。比如上述中的代碼用call方法來實現(xiàn)掏击,如下

var add = function (a, b) {
    return a + b;
}
add.call(null,1,2); //=>3
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市秩铆,隨后出現(xiàn)的幾起案子砚亭,更是在濱河造成了極大的恐慌,老刑警劉巖殴玛,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捅膘,死亡現(xiàn)場離奇詭異,居然都是意外死亡滚粟,警方通過查閱死者的電腦和手機寻仗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來凡壤,“玉大人署尤,你說我怎么就攤上這事耙替。” “怎么了曹体?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵俗扇,是天一觀的道長。 經(jīng)常有香客問我箕别,道長铜幽,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任串稀,我火速辦了婚禮除抛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘母截。我一直安慰自己到忽,他們只是感情好,可當我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布微酬。 她就那樣靜靜地躺著绘趋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪颗管。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天滓走,我揣著相機與錄音垦江,去河邊找鬼。 笑死搅方,一個胖子當著我的面吹牛比吭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播姨涡,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼衩藤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了涛漂?” 一聲冷哼從身側(cè)響起赏表,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎匈仗,沒想到半個月后瓢剿,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡悠轩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年间狂,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片火架。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡鉴象,死狀恐怖忙菠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情纺弊,我是刑警寧澤牛欢,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站俭尖,受9級特大地震影響氢惋,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜稽犁,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一焰望、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧已亥,春花似錦熊赖、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至捆姜,卻和暖如春传趾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背泥技。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工浆兰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人珊豹。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓簸呈,卻偏偏與公主長得像,于是被迫代替她去往敵國和親店茶。 傳聞我的和親對象是個殘疾皇子蜕便,可洞房花燭夜當晚...
    茶點故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內(nèi)容

  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學一百閱讀 3,216評論 0 4
  • 繼承 一、混入式繼承 二贩幻、原型繼承 利用原型中的成員可以被和其相關(guān)的對象共享這一特性轿腺,可以實現(xiàn)繼承,這種實現(xiàn)繼承的...
    magic_pill閱讀 1,054評論 0 3
  • 從2009年到2017年,八年過去鸯檬,三部電影决侈,一段關(guān)系。八年前志明認識了春嬌,八年后春嬌就要嫁給志明了赖歌。只是有多少...
    陳以壹閱讀 3,046評論 13 42
  • 男友的教授 在他們的領(lǐng)域里挺有名枉圃。高且清瘦 寡言和善 學術(shù)好 人品也是一流。 喪偶多年 把全部心血貢獻在了科學事業(yè)...
    長長長長長名字閱讀 271評論 0 2