iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 27
1

總結來說this就像是沒什麼太大的意義對於function而言,因為不管function的this他都指向window,所以對於不是物件的就沒有什麼用處。
就像:

function ero(){
  console.log(this);
}
ero();

但反過來說對於物件的使用上this才能發揮它的意義吧
就像:

var obj = {
  value: 1,
  ero: function() {
    console.log(this.value);
  },
 h: {
    value: 2,
    ero: function() {
      console.log(this.value);
    }
  }
}

當然這也只是初心者的感覺,如果要真正搞懂他還是要去了解ECMAScript。

最後總結一下:
不是物件的this基本上沒有意義。
沒有意義的this會根據環境給一個預設值。
非嚴格模式在瀏覽器底下預設值是window。
可以用call改變this的值。
要看this,就看這個function怎麽被呼叫。
可以把obj.h()看成obj.h.call(obj),以此類推,找出this的值。


上一篇
DAY26-call
下一篇
DAY28-VSCODE簡寫
系列文
30天資料整理30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言