關(guān)于函數(shù)調(diào)用

1.當(dāng)調(diào)用函數(shù)時(shí),除了傳入在定義中顯式聲明的參數(shù)之外权纤,同時(shí)還傳入兩個(gè)隱式參數(shù)钓简,arguments 和 this。

①arguments參數(shù)是傳入函數(shù)的所有參數(shù)的集合汹想,具有l(wèi)ength 屬性外邓,表示傳入?yún)?shù)的個(gè)數(shù),通過arguments參數(shù)還可以獲取那些與函數(shù)形參不匹配的參數(shù)古掏。在非嚴(yán)格模式下损话,arguments 對(duì)象是函數(shù)參數(shù)的別名,修改arguments對(duì)象會(huì)修改函數(shù)實(shí)參槽唾,可以通過嚴(yán)格模式避免修改函數(shù)實(shí)參丧枪。

②this 表示函數(shù)上下文,即與函數(shù)調(diào)用相關(guān)聯(lián)的對(duì)象庞萍,函數(shù)的定義方式和調(diào)用方式?jīng)Q定this的取值

function example(parm1,parm1){

????????console.log('this',this);

????????console.log('arguments',arguments);

}

example(1,2)

2.函數(shù)的調(diào)用方式有4種:

①作為函數(shù)調(diào)用:example()

②作為方法調(diào)用:example.method()

③作為構(gòu)造函數(shù)調(diào)用:new Example()

④通過apply('',[]) 與call('','','')

/ 1 函數(shù)模式調(diào)用 就是一個(gè)簡(jiǎn)單的函數(shù)調(diào)用. 函數(shù)名的前面沒有任何引導(dǎo)內(nèi)容.

function func() {

? ? console.log('函數(shù)模式');

}

func()

// 2 作為方法調(diào)用 方法一定是依附于一個(gè)對(duì)象, 將函數(shù)賦值給對(duì)象的一個(gè)屬性, 那么就成為了方法

function myFunc0() {

? ? console.log('方法調(diào)用');

}

var methods={

myMethod:myFunc0

}

methods.myMethod()

// 3 構(gòu)造函數(shù)調(diào)用

function myFunc1(){

console.log('構(gòu)造函數(shù)')

}

var my = new myFunc1()

// 4 call apply

function myFunc2(){

console.log('call apply')

}

var test={};

myFunc2.apply(test,[]);

myFunc2.call(test,'');


3.函數(shù)的調(diào)用方式影響this的取值

①如果作為函數(shù)調(diào)用豪诲,在非嚴(yán)格模式下,this指向全局window對(duì)象挂绰;在嚴(yán)格模式下this指向 undefined

②作為方法調(diào)用,this通常指向調(diào)用的對(duì)象

③作為構(gòu)造函數(shù)調(diào)用服赎,this通常指向新創(chuàng)建的對(duì)象

④通過call apply 調(diào)用葵蒂,this指向call apply 的第一個(gè)參數(shù)

// 1 非嚴(yán)格模式 函數(shù)模式調(diào)用

function func() {

? ? console.log('非嚴(yán)格模式-函數(shù)模式-this', this);

}

func()

// 嚴(yán)格模式 函數(shù)模式調(diào)用

function funcStrict() {

? ? "use strict";

? ? console.log('嚴(yán)格模式-函數(shù)模式-this', this);

}

funcStrict()

// 2 作為方法調(diào)用?

function myFunc0() {

? ? console.log('方法調(diào)用-this', this);

}

var methods = {

? ? myMethod: myFunc0

}

methods.myMethod()

// 3 構(gòu)造函數(shù)調(diào)用

function myFunc1() {

? ? this.status = false;

? ? console.log('構(gòu)造函數(shù)-this', this)

}

var my = new myFunc1()

// 4 call apply

function myFunc2() {

? ? var result = 0;

? ? for (var n = 0; n < arguments.length; n++) {

? ? ? ? this.result = arguments[n];

? ? }

? ? console.log('call apply-this', this)

}

var test = {};

myFunc2.apply(test, ['ex']);

myFunc2.call(test, 'ex');



4.箭頭函數(shù)沒有單獨(dú)的this值,this創(chuàng)建時(shí)確定

5.所有函數(shù)均可使用bind方法重虑,創(chuàng)建新函數(shù)践付,并綁定到bind方法傳入的參數(shù),被綁定的函數(shù)與原始函數(shù)具有一致的行為

https://www.cnblogs.com/jiaozhuo/p/5751002.html

document.getElementById('test2').onclick = function(color) {

? ? console.log(this)

? ? color = color || "#333333";

? ? this.style.color = color;

}.bind(document.getElementById('text'), "#ffcc33"); //黃色



?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末缺厉,一起剝皮案震驚了整個(gè)濱河市永高,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌提针,老刑警劉巖命爬,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異辐脖,居然都是意外死亡饲宛,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門嗜价,熙熙樓的掌柜王于貴愁眉苦臉地迎上來艇抠,“玉大人幕庐,你說我怎么就攤上這事〖矣伲” “怎么了异剥?”我有些...
    開封第一講書人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)絮重。 經(jīng)常有香客問我冤寿,道長(zhǎng),這世上最難降的妖魔是什么绿鸣? 我笑而不...
    開封第一講書人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任疚沐,我火速辦了婚禮,結(jié)果婚禮上潮模,老公的妹妹穿的比我還像新娘亮蛔。我一直安慰自己,他們只是感情好擎厢,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開白布究流。 她就那樣靜靜地躺著,像睡著了一般动遭。 火紅的嫁衣襯著肌膚如雪芬探。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評(píng)論 1 302
  • 那天厘惦,我揣著相機(jī)與錄音偷仿,去河邊找鬼。 笑死宵蕉,一個(gè)胖子當(dāng)著我的面吹牛酝静,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播羡玛,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼别智,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了稼稿?” 一聲冷哼從身側(cè)響起薄榛,我...
    開封第一講書人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎让歼,沒想到半個(gè)月后敞恋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡是越,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年耳舅,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡浦徊,死狀恐怖馏予,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情盔性,我是刑警寧澤霞丧,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站冕香,受9級(jí)特大地震影響蛹尝,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜悉尾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一突那、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧构眯,春花似錦愕难、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至壹店,卻和暖如春猜丹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背硅卢。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來泰國打工射窒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人将塑。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓轮洋,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親抬旺。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

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

  • 工廠模式類似于現(xiàn)實(shí)生活中的工廠可以產(chǎn)生大量相似的商品祥楣,去做同樣的事情开财,實(shí)現(xiàn)同樣的效果;這時(shí)候需要使用工廠模式。簡(jiǎn)單...
    舟漁行舟閱讀 7,758評(píng)論 2 17
  • 單例模式 適用場(chǎng)景:可能會(huì)在場(chǎng)景中使用到對(duì)象误褪,但只有一個(gè)實(shí)例责鳍,加載時(shí)并不主動(dòng)創(chuàng)建,需要時(shí)才創(chuàng)建 最常見的單例模式兽间,...
    Obeing閱讀 2,067評(píng)論 1 10
  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line)历葛,也就是一...
    悟名先生閱讀 4,148評(píng)論 0 13
  • Lua 5.1 參考手冊(cè) by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 13,793評(píng)論 0 38
  • 三、閉包和高階函數(shù) 3.1 閉包 3.1.1 變量的作用域 所謂變量的作用域,就是變量的有效范圍恤溶。通過作用域的劃分...
    梁同學(xué)de自言自語閱讀 1,452評(píng)論 0 6