物件的補充 棧堆 全域性物件window和this

2021-10-05 19:39:40 字數 558 閱讀 9757

一、物件的補充-棧堆

記憶體用來執行資料的控制項,內部有區分了不同的儲存方式

棧:一般用來儲存變數名和位址,空間小,穩定,不可修改

堆:一般用來儲存資料,空間大,可被修改

關係:一一對應,多對一,不能一對多

訪問規則:

棧:先進後出:杯子

堆:先進先出:掉底的杯子

資料型別的分類

基本型別(值傳遞)

資料就在棧中

不存在深淺拷貝,預設就是深拷貝

引用型別(引用傳遞的資料)

棧中只儲存了乙個位址,位址指向堆中的某個資料

存在深淺拷貝,預設是淺拷貝

目前會有一些影響

如何實現深拷貝?

for-in遍歷屬性

二、全域性物件window和this

window

全域性物件,所有的全域性內容,都可以在window身上找到

一般情況下,window可以被省略

this

函式內的關鍵字

表示當前函式的執行上下文(執行物件)

誰執行了this所在的函式,this就是誰

棧物件和堆物件

在gameres上看見乙個問題帖 什麼時候該用 object object 什麼時候該用 object object object new object 感覺看起來沒什麼區別,其實不一樣 前乙個是棧物件,後乙個是堆物件。引用一下別人對棧物件 堆物件的解釋 棧物件的優勢是在適當的時候自動生成,又在適當...

棧物件 堆物件 靜態物件的比較

棧物件的優勢是在適當的時候自動生成,又在適當的時候自動銷毀,不需要程式設計師操心 而且棧物件的建立速度一般較堆物件快,因為分配堆物件時,會呼叫operator new操作,operator new會採用某種記憶體空間搜尋演算法,而該搜尋過程可能是很費時間的,產生棧物件則沒有這麼麻煩,它僅僅需要移動棧...

C 棧物件 堆物件 理解

在c 中,類的物件建立分為兩種,一種是靜態建立,如a a 另一種是動態建立,如a ptr new a 這兩種方式是有區別的。1 靜態建立類物件 是由編譯器為物件在棧空間中分配記憶體,是通過直接移動棧頂指標,挪出適當的空間,然後在這片記憶體空間上呼叫建構函式形成乙個棧物件。使用這種方法,直接呼叫類的建...