這與簡單的物件

var person = {
  name: 'John Doe',
  age: 42,
  gender: 'male',
  bio: function() {
    console.log('My name is ' + this.name);
  }
};
person.bio(); // logs "My name is John Doe"
var bio = person.bio;
bio(); // logs "My name is undefined"

在上面的程式碼中,person.bio 使用了上下文this)。當函式被稱為 person.bio() 時,上下文會自動傳遞,因此它會正確記錄“我的名字是 John Doe”。將函式分配給變數時,會丟失其上下文。

在非嚴格模式下,預設上下文是全域性物件(window)。嚴格的模式是 undefined