這幾天在學習前端技術,看了紅寶書,覺得紅寶書裏講的內容特別詳細,但是我有時候看着看着就看不懂了,所以特此寫下這篇文章來總結一下。
我不知道大家對js中的this對象是如何理解的,我每次看到this我都會發怵,因爲我覺得這個this特別亂,所以專門來總結一下this的用法。
在總結之前,我要先問自己幾個問題:
this是什麼?this的作用是什麼?this都在哪裏會用到?爲什麼要用this?
首先我要講一下this是什麼?先看一下下面的例子:
function example(){
return this.name;
}
var my={
name:"yn",
}
example.call(my);//"yn"
上面例子中如果不使用this那就必須給函數傳入一個參數,通過參數來調用name,
function example(context){
return context.name;
}
var my={
name:"yn",
}
example(my);//"yn"
這樣的話this其實是一個對象,她隱式的給函數傳入一個對象引用。
this是在代碼運行時綁定的,並不是編寫時就綁定的,this的綁定和函數及聲明的位置沒有任何關係,只取決於函數的調用方式。