Angular.JS中的this指向詳解
【this詳解】
1、誰(shuí)最終調(diào)用函數(shù),this指向誰(shuí)。
① this指向的,永遠(yuǎn)只可能是對(duì)象?。。。。?!
② this指向誰(shuí),永遠(yuǎn)不取決于this寫在哪?。《侨Q于函數(shù)在哪調(diào)用。
③ this指向的對(duì)象,我們稱之為函數(shù)的上下文context,也叫函數(shù)的調(diào)用者
2、※※※※※this指向的規(guī)律(與函數(shù)調(diào)用的方式息息相關(guān)):
this指向的情況,取決于函數(shù)調(diào)用的方式有哪些:
① 通過函數(shù)名()直接調(diào)用:this指向window
② 通過對(duì)象.函數(shù)名()調(diào)用的:this指向這個(gè)對(duì)象
③ 函數(shù)作為數(shù)組的一個(gè)元素,通過數(shù)組下標(biāo)調(diào)用的:this指向這個(gè)數(shù)組
④ 函數(shù)作為window內(nèi)置函數(shù)的回調(diào)函數(shù)調(diào)用:this指向window setInterval setTimeout 等...
⑤ 函數(shù)作為構(gòu)造函數(shù),用new關(guān)鍵字調(diào)用時(shí):this指向新new出的對(duì)象
function func(){ console.log(this); }
① 通過函數(shù)名()直接調(diào)用:this指向window
func(); this--->window
② 通過對(duì)象.函數(shù)名()調(diào)用的:this指向這個(gè)對(duì)象
狹義對(duì)象
var obj = { name:"obj", func1 :func }; obj.func1(); this--->obj
廣義對(duì)象
document.getElementById("div").onclick = function(){ this.style.backgroundColor = "red"; }; this--->div
③ 函數(shù)作為數(shù)組的一個(gè)元素,通過數(shù)組下標(biāo)調(diào)用的:this指向這個(gè)數(shù)組
var arr = [func,1,2,3]; arr[0](); this--->arr
④ 函數(shù)作為window內(nèi)置函數(shù)的回調(diào)函數(shù)調(diào)用:this指向window
setTimeout(func,1000);// this--->window setInterval(func,1000);
⑤ 函數(shù)作為構(gòu)造函數(shù),用new關(guān)鍵字調(diào)用時(shí):this指向新new出的對(duì)象
var obj = new func(); //this--->new出的新obj
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
Angularjs使用ng-repeat中$even和$odd屬性的注意事項(xiàng)
無(wú)可否認(rèn)angularjs的崛起成為前端很大的福利,最近接到項(xiàng)目,框架便選中了angularjs。angularjs最吸引人的地方就是數(shù)據(jù)的雙向綁定和指令了,這篇文章主要介紹了Angularjs中使用ng-repeat的$even和$odd屬性的注意事項(xiàng),需要的朋友可以參考下2016-12-12基于angular實(shí)現(xiàn)三級(jí)聯(lián)動(dòng)的生日插件
這篇文章主要為大家詳細(xì)介紹了基于angular實(shí)現(xiàn)三級(jí)聯(lián)動(dòng)的生日插件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05angularjs實(shí)現(xiàn)首頁(yè)輪播圖效果
這篇文章主要為大家詳細(xì)介紹了angularjs實(shí)現(xiàn)首頁(yè)輪播圖效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04angular內(nèi)置provider之$compileProvider詳解
下面小編就為大家?guī)?lái)一篇angular內(nèi)置provider之$compileProvider詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2017-09-09利用require.js與angular搭建spa應(yīng)用的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于利用require.js與angular搭建spa應(yīng)用的方法實(shí)例,文中通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的理解和學(xué)習(xí)具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來(lái)一起看看吧。2017-07-07