實現const功能

2021-10-04 20:33:47 字數 766 閱讀 5537

關鍵在於object.defineproperty()這個api。可以接受三個引數,

object.

defineproperty

(obj,prop,desc)

;obj:在其上面定義屬性的物件

prop:要定義和修改的屬性

desc:將被定義或修改的屬性描述符,其中有

value 該屬性對應的值,預設undefined

get 提供getter方法

set 提供set方法

writable 當且僅當該屬性的writable為true時,value才能被賦值運算子改變。預設為 false

enumerable 定義了物件的屬性是否可以在 for

...in 迴圈和 object.

keys

() 中被列舉 預設為 false

configurable 表示物件的屬性是否可以被刪除,以及除value和writable特性外的其他特性是否可以被修改 預設為 false

function

_const

(key, value)

object.

defineproperty

(window, key, desc)

}_const

('obj',)

//定義obj

obj.b =

3//可以正常給obj的屬性賦值

obj =

//丟擲錯誤,提示物件read-only

const實現機制

c語言以及c 語言中的const究竟表示什麼?其具體的實現機制又是如何實現的呢?本文將對這兩個問題進行一些分析,簡單解釋const的含義以及實現機制。簡單的說const在c語言中表示唯讀的變數,而在c 語言中表示常量。關於const在c與c 語言中的使用以及更多的區別,以後有時間另開一貼說明。那麼c...

Static 和 Const 的幾個功能

在變數中 用static宣告區域性變數 區域性變數指在 塊 內部定義的變數,只在 塊內部有效 作用域 其預設的儲存方式是自動變數或說是動態儲存的,即指令執行到變數定義處時才給變數分配儲存單元,跳出 塊時釋放記憶體單元 生命期 用static宣告區域性變數時,則改變變數的儲存方式 生命期 使變數成為靜...

const的功能和二維陣列

看到乙個const,其初始目的 取代預編譯指令,即預處理,揚長避短。具體作用 定義const常量,具有不可變性。防止對程式的意外修改。如 void f const int i 節省空間,節省記憶體。提高效率。便於型別檢查,使編譯器對處理內容有更多了解,消除了一些隱患。可以避免意義模糊的數字出現,同樣...