js中的this問題

這幾天在學習前端技術,看了紅寶書,覺得紅寶書裏講的內容特別詳細,但是我有時候看着看着就看不懂了,所以特此寫下這篇文章來總結一下。

我不知道大家對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的綁定和函數及聲明的位置沒有任何關係,只取決於函數的調用方式。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章