該章節將從如下幾個方面來談論ths的使用環境。瀏覽器
1/this和構造器函數
2/this和對象this
3/this和函數spa
4/全局環境的thisprototype
5/this和DOM/事件code
7/me/self/that/_this 暫存this對象
8/ES5 中新增的bind和 thisblog
9/ES6箭頭函數(arrow function)和 this事件
-- 1/ this和構造器function Tab(nav,content){ this.nav=nav; this.content=content;}Tab.prototype.getNav=function(){ return this.nav;}Tab.prototype.setNav=function(nav){ this.nav=nav;}--2/this 和 對象JS中的對象對象不用類也能夠建立var Tab={ nav:'', content:'', getNav:function(){ return this.nav; }, setNav:function(n){ this.nav=n; }}--3/this和函數 在 非嚴格模式 下,且this的值不是由該調用設置的,因此this的值默認指向全局對象 function f1(){ return this; }f1()==window; // true;在瀏覽器中,全局對象是windowf1()==global;// true;在Node中在 嚴格模式 下,若是this沒有被執行環境定義,那麼將爲undefined;function f2(){ "use strict";//嚴格模式 return this;}f2()==undefined;//true緣由:由於f2是被直接調用的,不是做爲對象的屬性或方法調用--4/全局環境的thisconsole.log(this==window); //truea=37;console.log(window.a);//37this.b="mon";console.log(window.b);//monconsole.log(b);//mon