摘要:原理是類的構造函數被調用,并且實例化了新的對象。盡管的語法非常相同,但使用在底層還是會引發不同行為沒有構造函數首先,我們并不是必須要用一個類來生成對象。構造函數只不過是在調用時關鍵字放在其前面的普通方法而已。
由于存在海量的庫和工具,以及各種各樣簡化你開發的玩意兒,很多程序員開始在不深入了解底層的情況下開發應用。JavaScript就是這種現象的代言人。JavaScript作為一種最復雜的且流傳最廣泛的語言,很多的開發者被高層次庫的使用吸引,同時將糟粕抽離。
盡管你在不深入理解的情況下仍可以開發值得稱道的應用,但深入JavaScript絕對讓你收益。對“怪異部分”的理解可以讓高級開發者在蕓蕓眾生中脫穎而出,另外,雖然JS的生態日新月異,但對“怪異部分”的理解依舊是所有其他工具的基礎。理解了這些就會拓展你的視野,并且改變你看待開發過程的方式。
在我 之前的文章 中稍微提到過new關鍵字,它創建了一個對this的綁定。在面向對象語言中,new關鍵字總是用于實例化一個類。
var dog = new Dog();
原理是類的構造函數被調用,并且實例化了新的對象。盡管JavaScript的語法非常相同,但使用new在底層還是會引發不同行為
沒有構造函數首先,我們并不是必須要用一個類來生成對象。在JavaScript中我們可以用方法(function)就能實現此目標。構造函數只不過是在調用時new關鍵字放在其前面的普通方法而已。你可以說沒有構造函數-只有構造函數調用,因為實際上所有的函數都可以被調用去創建對象。這并不是對象或者類或者任何特殊定義方式的一部分。
這里有幾個構造函數調用經歷的步驟,但我們只關注現在討論的事項:
1.一個新對象被創建
2.this被綁定到新對象上面
3.除非函數返回它自己的對象,否則調用將返回已構造的對象
function Person(name) { this.name = name } var person = new Person("Alex") console.log(person.name) // Alex總結
總結一下,這并不是一個難懂的概念。要點就是要始終記得,任何方法(function)都可以像構造函數一樣被調用,并且會創建一個this的綁定。
非常感謝閱讀,期待你的反饋。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/95006.html
摘要:在中,當使用關鍵字調用函數構造函數時,函數構造函數中也有這個概念,但是它不是惟一的規則,而且常常可以引用來自不同執行上下文的不同對象。因此,我們使用調用函數,可以看到這是對象,并且的屬性是正常的。 一直以來,javascript里邊的this都是一個很難理解的東西,之前看的最多的就是阮一峰老師關于this的理解: http://www.ruanyifeng.com/blo... htt...
摘要:所以是在一秒后顯示的。這個行為不會耗費資源,因為引擎可以同時處理其他任務執行其他腳本,處理事件等。每個回調首先被放入微任務隊列然后在當前代碼執行完成后被執行。,函數是異步的,但是會立即運行。否則,就返回結果,并賦值。 「async/await」是 promises 的另一種更便捷更流行的寫法,同時它也更易于理解和使用。 Async functions 讓我們以 async 這個關鍵字開...
摘要:當面試中讓我解釋一下閉包時我懵逼了。這個解釋開始可能有點晦澀,讓我們抽絲剝繭摘下閉包的真面目。此文不詳述作用域有專門的主題闡述,不過作用域是理解閉包原理的基礎。這才是閉包的真正便利之處。閉包使用不當就會很坑。 原文鏈接 為什么深度學習JavaScript? JavaScript如今是最流行的編程語言之一。它運行在瀏覽器、服務器、移動設備、桌面應用,也可能包括冰箱。無需我舉其他再多不相干...
摘要:一個表示編譯器檢測到一個無效的引用值。在實際情況中,往往是在獲取一個未被賦值的引用時被拋出。任何一個函數上下文都有一個被稱為活動對象的變量對象。沒有找到的話,就會認為引用名沒有基礎值并拋出的錯誤。下沒有下的屬性僅存在于被啟動的情況下。 和其他語言相比,javascript中的對于undefined的理解還是有點讓人困惑的。特別是試著理解ReferenceErrors錯誤(x is no...
摘要:關鍵字會實例化一個新的對象實例,并在執行構造函數時將指向該實例。原文鏈接譯是什么對象的內部工作原理 原文鏈接:What is this? The Inner Workings of JavaScript Objects (需要梯子) 原文作者:Eric Elliott 譯文永久鏈接:【譯】什么是 this?JavaScript 對象的內部工作原理 譯者:士心 翻譯目的:函數動...
閱讀 3739·2021-09-22 10:57
閱讀 1918·2019-08-30 15:55
閱讀 2707·2019-08-30 15:44
閱讀 1737·2019-08-30 15:44
閱讀 1881·2019-08-30 15:44
閱讀 2249·2019-08-30 12:49
閱讀 1058·2019-08-29 18:47
閱讀 3139·2019-08-29 16:15