- 看透JavaScript:原理、方法與實踐
- 韓路彪
- 411字
- 2020-11-28 15:50:47
7.2 this的含義
很多開發者對JS中的this理解得不是很清楚,很多時候會因為不正確地使用this而造成不必要的錯誤。下面我們就來給大家介紹JS中的this。
要正確理解this首先要將我們前面學習過的三種子類型區分清楚。這三種子類型是不可以相互調用的,只有在區分清楚這三種子類型之后才可能正確理解this的含義。區分清楚三種子類型之后再理解this就非常簡單了,只需要記住一句話就可以了,那就是“誰直接調用方法this就指向誰”。也就是說方法的點前面的對象就是this,只要記住這一原則就不會對this的使用產生錯誤了。我們來看下面的例子。
var color = "red"; function Obj(){ var color = "black"; } Obj.color = "green"; Obj.prototype.logColor = function(){ console.log(this.color); } var o = new Obj();
o.color = "blue"; o.logColor(); //blue
這個例子中一共有4個color,一個是全局變量,一個是Obj的局部變量,一個是Obj的屬性,還有一個是Obj創建的實例對象o的屬性。logColor方法是Obj的prototype中的方法屬性,其中打印了this.color的值。在調用o.logColor()時,按照前面給大家介紹的原則很容易就可以判斷出這里會使用實例對象o中的color屬性,也就是blue,這是因為logColor方法是被o對象直接調用的。
推薦閱讀
- Learn TypeScript 3 by Building Web Applications
- CockroachDB權威指南
- 樂學Web編程:網站制作不神秘
- C/C++常用算法手冊(第3版)
- The DevOps 2.4 Toolkit
- MySQL數據庫基礎實例教程(微課版)
- MongoDB權威指南(第3版)
- 小學生C++創意編程(視頻教學版)
- 學習OpenCV 4:基于Python的算法實戰
- 51單片機C語言開發教程
- 響應式架構:消息模式Actor實現與Scala、Akka應用集成
- 微信小程序開發與實戰(微課版)
- Android開發三劍客:UML、模式與測試
- Visual Studio 2015高級編程(第6版)
- Extreme C