摘要:中指向問題一直是個坑,之前一直是懵懵懂懂的,大概知道一點,但一直不知道各種情況下指向有什么區別,今天親自動手測試了下的指向。這就是我關于學習的總結,希望能給需要的人點幫助,然后有啥不足希望有大神能指點出來。
js中this指向問題一直是個坑,之前一直是懵懵懂懂的,大概知道一點,但一直不知道各種情況下指向有什么區別,今天親自動手測試了下this的指向。
1.在對象中的this
對象中的this指向我們創建的對象,例如:
var obj ={ ccc : 1122, ffffd : 2233, ded : function(){ console.log(this); } , fff : function(){ console.log(this === obj ); } } obj.ded(); obj.fff();
在chrome中執行的答案如下:
上圖我們可以看出我們執行obj對象下的ded函數時,打印出來的事Object對象里面的所有屬性,展示這個對象
可以看到obj對象包含的方法和屬性都包含在this對象下面,再運行fff函數,把this和obj對象進行比較,可以看出這兩個是恒等的,所以在對象里的this指向這個對象。
2.直接調用函數時的this指向
先創建一個函數:
function main(){ this.aad = 234; console.log(this); } main();
運行效果如下:
可以看到我們打印出來的this對象指向全局變量window,而創建的aad變量直接包含在了window對象下面了,所以直接調用函數時this是指向window對象的。
3.構造函數中的this指向
當我們創建一個構造函數時,并且實例化一個對象時,this的指向哪里呢?先創建一個函數
function main(){ this.aad = 234; this.def = function(){ console.log(this); }; this.foo = function(){ console.log(this === xxx); }; this.xoo = function(){ console.log(this === main); }; } var xxx = new main(); xxx.def(); xxx.foo(); xxx.xoo();
可以看出xxx.def函數還是指向main函數,但這只是把上下文給打印出來了,但當我們打印this與構造函數以及實現對象比較時就可以看出區別了,與構造函數main比較出來的值是false;與xxx函數比較時顯示是true,所以構造函數this事指向當前實例化對象的。
這就是我關于this學習的總結,希望能給需要的人點幫助,然后有啥不足希望有大神能指點出來。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/78849.html
摘要:中指向問題一直是個坑,之前一直是懵懵懂懂的,大概知道一點,但一直不知道各種情況下指向有什么區別,今天親自動手測試了下的指向。這就是我關于學習的總結,希望能給需要的人點幫助,然后有啥不足希望有大神能指點出來。 js中this指向問題一直是個坑,之前一直是懵懵懂懂的,大概知道一點,但一直不知道各種情況下指向有什么區別,今天親自動手測試了下this的指向。 1.在對象中的this對象中的t...
摘要:當代碼在一個環境中執行時,會創建變量對象的一個作用域鏈。可以指向不同的運行環境,這里的運行環境本質上指的是對象,可以是內建對象自定義對象或者全局對象。 今天早上看到公眾號推送了阮一峰老師的文章JavaScript 的 this 原理,文章不是很長于是研究了一下。 看完自己的總結如下: this this 指向函數運行時所在的環境。 函數運行在對象內,this 就指向該對象 運行在全局...
摘要:被克隆的對象稱之為新對象的原型,新對象保存一個指向其原型的引用。一個對象是如何與其原型聯系起來的呢答對象的屬性指向其構造函數的。如何實現繼承呢使構造函數的等于另一個構造函數的一個實例這樣就使得繼承于。 眾所周知,在javascript這門動態類型語言中,是不存在如傳統靜態類型語言如c++或java中對類的支持的。后者是天生為面向對象編程而設計,其中涉及的一些概念如繼承、多態、函數重載在...
摘要:關于的指向問題算的上是中的一個十分重要的問題了。首先,的指向問題可以用一句話總結就是總是指向調用的對象,也就是說指向誰與函數聲明的位置沒有關系,只與調用的位置有關。此外注意幾種特殊情況,特別是中的箭頭函數。 關于this的指向問題算的上是js中的一個十分重要的問題了。今天把這個問題總結下,加深下自己對this的理解。首先,this的指向問題可以用一句話總結就是:this總是指向調用的對...
閱讀 2722·2021-11-22 13:54
閱讀 1063·2021-10-14 09:48
閱讀 2292·2021-09-08 09:35
閱讀 1550·2019-08-30 15:53
閱讀 1166·2019-08-30 13:14
閱讀 606·2019-08-30 13:09
閱讀 2521·2019-08-30 10:57
閱讀 3334·2019-08-29 13:18