嚴格模式下this的指向

admin發表於2017-12-04

關於this的基本用法,這裡就不多介紹了,具體可以參閱javascript的this用法詳解一章節。

特別說明:上面的文章並沒有考慮到嚴格模式的影響。

下面就來介紹一下在嚴格模式下,this的變化有哪些。

在非嚴格模式下,如果如果函式沒有用作建構函式,而是僅僅作為普通函式使用的話,那麼函式中的this是指向window的。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
var webName="螞蟻部落";
function done(){
  console.log(this.webName);
}
done();

在上面的程式碼中,done用作普通函式,它裡面的this是指向window物件的。

但是在嚴格模式下,並非如此,程式碼如下:

[JavaScript] 純文字檢視 複製程式碼
"use strict";
var webName="螞蟻部落";
function done(){
  console.log(this.webName);
}
done();

上面的程式碼會報錯,因為在嚴格模式下,done用作普通的函式,那麼this的值就是undefined。

特別說明:本編輯器無法正確演示嚴格下的效果,請複製到本地測試。

相關文章