知識社群登入
function 中的 this
by 蘇德宙, 2012-06-06 12:15, 人氣(1365)
this 一般會指向 global,因此如果是物件,要特別小心要用 new

function obj() {
  this.value = "v";
}
var o = obj();      // 錯誤,this 指向 global, browser 中通常是 window
var o = new obj();  // this 指向物件

解決方法 ~ 自我呼叫的建構式
function obj() {
  if (!(this instanceof obj)) {
    return new obj();
  }
  this.value = "v";
}