this、閉包

apply峡竣、call 的作用及區(qū)別

  • 作用:在指定this值和參數(shù)值的前提下去調(diào)用函數(shù)或方法庆杜。
  • 區(qū)別:A for array,C for comma ! apply方法接受的是一個包含多個參數(shù)的數(shù)組,而call方法接受的是一個參數(shù)列表蛮拔。
    • theFunction.call( this, arg1, arg2, arg3... )
    • theFunction.apply( this, [arg1,arg2,arg3...] )

小練習(xí)

1.以下代碼輸出什么?

var john = { 
  firstName: "John" 
}
function func() { 
  alert(this.firstName + ": hi!")
}
john.sayHi = func   // 把 func 拷貝了一份述暂,存在對象john的sayHi屬性中
john.sayHi()    // 輸出 "john: hi!"  這個函數(shù)的擁有者是john這個對象 this指向john

2.下面代碼輸出什么,為什么

func()         // 輸出 window對象 這個函數(shù)的擁有者是window對象或稱全局對象

function func() { 
  alert(this)        
}

3.下面代碼輸出什么

function fn0(){
  function fn(){
    console.log(this);
  }
  fn();
}

fn0();  // 輸出window對象 fn0這個函數(shù)的擁有者是window對象 其內(nèi)部的this指向window對象


document.addEventListener('click', function(e){
  console.log(this);     // 點擊 輸出document對象 實質(zhì)是拷貝了一份函數(shù)給document的click屬性 這個函數(shù)屬于document對象
  setTimeout(function(){
    console.log(this);   // 200毫秒后 輸出window對象 setTimeout是運行在全局環(huán)境下的 屬于window對象
  }, 200);
}, false);

4.下面代碼輸出什么建炫,why

var john = { 
  firstName: "John" 
}

function func() { 
  alert( this.firstName )
}
func.call(john)  // 輸出 "John" call在指定了john作為this的前提下去調(diào)用了func

5.代碼輸出畦韭?

var john = { 
  firstName: "John",
  surname: "Smith"
}

function func(a, b ) { 
  alert( this[a] + ' ' + this[b] )
}
func.call(john, 'firstName', 'surname')  // 輸出 "John Smith" call在指定john作為this的前提下調(diào)用了func

6.以下代碼有什么問題,如何修改

var module= {
  bind: function(){
    $btn.on('click', function(){
      console.log(this) //this指的是btn這個元素 實質(zhì)拷了一份函數(shù)給btn的click屬性 函數(shù)屬于btn
      this.showMsg();  // 報錯 這不是一個函數(shù)
    })
  },
  
  showMsg: function(){
    console.log('饑人谷');
  }
}

var module= {
  bind: function(){
    var self=this;
    $btn.on('click', function(){
      console.log(this) 
      self.showMsg(); // 本來我是直接改成module的 看了老師對育薇同學(xué)的點評   發(fā)現(xiàn)以后改名的話會出問題 其他人不容易發(fā)現(xiàn)里面這個東西肛跌。艺配。維護(hù)太艱難 也意識到工程化模塊化的重要性了
    })
  },
  
  showMsg: function(){
    console.log('饑人谷');
  }
}

7.下面代碼輸出什么? why

obj = {
  go: function() { alert(this) }
}

obj.go();    // 輸出 obj對象 這個函數(shù)屬于obj

(obj.go)();     // 輸出 obj對象 全局中并沒有這個函數(shù) 函數(shù)還是在obj中是屬于obj的

(a = obj.go)();     // 輸出 window對象 函數(shù)被賦值給了全局變量a再遇到括號執(zhí)行了 這個函數(shù)屬于window對象

(0 || obj.go)();     // 輸出 obj對象 看了同學(xué)們的解釋才知道 多了一個傳遞的過程 以一個全局變量做中轉(zhuǎn)來存儲結(jié)果 所以與上一例相同
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市衍慎,隨后出現(xiàn)的幾起案子转唉,更是在濱河造成了極大的恐慌,老刑警劉巖稳捆,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赠法,死亡現(xiàn)場離奇詭異,居然都是意外死亡乔夯,警方通過查閱死者的電腦和手機砖织,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進(jìn)店門款侵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人侧纯,你說我怎么就攤上這事新锈。” “怎么了眶熬?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵妹笆,是天一觀的道長。 經(jīng)常有香客問我娜氏,道長拳缠,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任牍白,我火速辦了婚禮,結(jié)果婚禮上抖棘,老公的妹妹穿的比我還像新娘茂腥。我一直安慰自己,他們只是感情好切省,可當(dāng)我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布最岗。 她就那樣靜靜地躺著,像睡著了一般朝捆。 火紅的嫁衣襯著肌膚如雪般渡。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天芙盘,我揣著相機與錄音驯用,去河邊找鬼。 笑死儒老,一個胖子當(dāng)著我的面吹牛蝴乔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播驮樊,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼薇正,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了囚衔?” 一聲冷哼從身側(cè)響起挖腰,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎练湿,沒想到半個月后猴仑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡肥哎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年宁脊,在試婚紗的時候發(fā)現(xiàn)自己被綠了断国。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡榆苞,死狀恐怖稳衬,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情坐漏,我是刑警寧澤薄疚,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站赊琳,受9級特大地震影響街夭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜躏筏,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一板丽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧趁尼,春花似錦埃碱、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至芝囤,卻和暖如春似炎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背悯姊。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工羡藐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人悯许。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓传睹,卻偏偏與公主長得像,于是被迫代替她去往敵國和親岸晦。 傳聞我的和親對象是個殘疾皇子欧啤,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,435評論 2 359

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