javascript實現(xiàn)方法調用與方法觸發(fā)小結
來源:易賢網 閱讀:1053 次 日期:2016-07-15 16:38:49
溫馨提示:易賢網小編為您整理了“javascript實現(xiàn)方法調用與方法觸發(fā)小結”,方便廣大網友查閱!

這篇文章主要介紹了javascript實現(xiàn)方法調用與方法觸發(fā)小結的相關資料,需要的朋友可以參考下

在js中,this關鍵字是一個比較讓人有意思的東西,但是它的指向經常讓初學者摸不著頭腦。

其實要理解這個關鍵字,需要理清兩個問題——“方法的調用和方法的觸發(fā)”

下面先看一段代碼

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>function</title>

<script>

function showThis(){

  console.info(this);

}

function Test1(){

  this.f=showThis;

}

function Test2(){

  this.f=function(){

    showThis();

  }

}

showThis();//window

new Test1().f();//Test1  

new Test2().f();//window

</script>

</head>

<body>

</body>

</html> 

20行打印出window對象,這個很容易理解,但是21行打印出Test1的實例對象,而22行卻打印出window對象。查看Test1和Test2的構造,發(fā)現(xiàn)方法f最終都執(zhí)行了showThis方法。但是showThis中的this指向卻不同。這是因為Test1中的f方法直接指向showThis,new Test1().f()是以Test1 的實例直接調用showThis方法,調用者是Test1的實例。而new Test2().f()是在Test2的實例方法f中觸發(fā)window對象的showThis方法,其中的this就是指向其調用者window而不是觸發(fā)者Test2的實例。

至此可以發(fā)現(xiàn)。this指向的是調用者,而觸發(fā)者只是推進調用者執(zhí)行指定方法而已。

更多信息請查看網絡編程
關于我們 | 聯(lián)系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點

版權所有:易賢網