在Javascript中,this這個關鍵字能夠說是用的很是多,說他簡單呢也很簡單,說他難呢也很難,有的人開發兩三年了,本身好像也說不清this究竟是什麼。下面咱們來看看:javascript
一、在通常函數方法中使用 this 指代全局對象java
function hello(){ this.x = 1; console.log(this.x) } hello(); //此時控制檯打印1
2.做爲對象方法調用,this 指代上級對象網絡
function hello(){ console.log(this.x) } var s = {}; s.x = 1; o.m = hello; o.m(); //此時控制檯打印1
3.做爲構造函數調用,this 指代new 出的對象app
function hello(){ this.x = 1; } var s = new hello(); console.log(s.x) //運行結果爲1,爲了代表這是this不是全局對象,咱們對代碼作一些改變 var x = 2; function hello(){ this.x = 1; } var o = new hello(); console.log(x)
4.apply 調用 ,apply方法做用是改變函數的調用對象,此方法的第一個參數爲改變後調用這個函數的對象,this指代第一個參數函數
var x = 0; function hello(){ console.log(this.x) } var h = {}; h.x = 1; h.m = hello; h.m.apply(); //輸出爲0 h.m.apply(h) //輸出1
以上就是經常使用的四種方法,你們要是不明白,能夠把demo運行一下本身就知道了。this
以上部份內容來自網絡,有問題能夠在下面評論,技術問題能夠在私聊我。code
技術QQ羣:213365178對象