2019年3月17日 星期日

[Back To Basic] Javascript - this

javascript 的 this 代表的是: 某個屬性(property)隸屬的物件(object),也就是說 this 的值不固定。

this代表的是誰?

  • 物件(object)中的方法(method)的this
var user = {
    name: 'Shawn',
    getUser: function () {
        return this; // this 代表 user,因為 user 擁有 getUser()
    }
}
  • 單獨使用this (嚴格模式的結果也一樣)
var temp = this; // this 代表全域物件(global object),瀏覽器中的全域物件是 window
  • 在 function 中使用this
function myFunction(){
  return this; // this代表全域物件(global object),因為這個function隸屬於全域物件(global object)
}
  • 在 function 中使用this (嚴格模式)
"use strict";
function myFunction(){
  return this; // this的值為undefined,嚴格模式中,不允許預設綁定
}
  • 在事件處理(event handler)上使用this
<!-- this代表整個 button HTML元素 -->
<button onclick="onClick(this)">Click</button> 

預設的javascript method

javascript會預設一些method在function中
  • call()
  • apply()
  • ...

沒有留言:

張貼留言