iT邦幫忙

1

this 的 解釋

在javascript中

"this"的解釋可以講成

"作用區最頂層的object"嗎?

一直找不到this最好的解釋

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

WilliamHuang
iT邦研究生 1 級 ‧ 2016-12-29 16:21:00
【**此則訊息已被站方移除**】
6
fillano
iT邦超人 1 級 ‧ 2016-12-30 12:21:16

簡單說:this是函數執行時,函數所綁定的物件的參考。

重點是,他是函數執行時才決定的,所以要小心...

  1. 透過函數的call, apply方法,可以改變它執行時的this
  2. 但是這兩個方法不影響:
    1. 使用bind方法綁定到this到指定物件產生的新函數
    2. arrow function

例如:

var a = {
  s:'a',
  m:function(){
    console.log(this.s);
  }
};
a.m();//show 'a'
var b = {
  s:'b'
};
a.m.call(b);//show 'b'
b.m1 = a.m;
b.m1();//show 'b'
var c = a.m.bind(b);
c();//show 'b'
var d = {
  s:'d'
};
c.call(d);//show 'b'

沒跟任何物件有關係時,預設的this是Global物件,在瀏覽器的話就是window物件。

tsuifei iT邦新手 4 級 ‧ 2017-01-03 02:28:49 檢舉

很棒的解釋,謝謝~

0
tsuifei
iT邦新手 4 級 ‧ 2017-01-03 02:27:50

對我來說this有點像是要針對某個元素做事件處理的那個元素
例如有很多個h2,如果寫點擊h2(任何一個)會有效過,那個任何其中一個被點擊的就是this
不知這樣解釋對不對,是我的認知啦~

我要發表回答

立即登入回答