如何在 ES5 環境下實現乙個const ?

2021-09-11 14:12:30 字數 753 閱讀 7914

資料描述符與訪問描述符皆可修改:

唯有資料描述符可以修改:

唯有訪問描述符可以修改:

configurable

enumerable

value

writable

getset

資料描述符

yesyes

yesyes

nono

訪問描述符

yesyes

nono

yesyes

由於es5環境沒有block的概念,所以是無法百分百實現const,只能是掛載到某個物件下,要麼是全域性的window,要麼就是自定義乙個object來當容器

var __const = function __const (data, value) ,

set: function (data) else }})

}__const('a', 10)

console.log(a)

delete a

console.log(a)

for (let item in window)

}a = 20 // 報錯

複製**

複製**

vue目前雙向繫結的核心實現思路就是利用object.defineproperty對getset進行劫持,監聽使用者對屬性進行呼叫以及賦值時的具體情況,從而實現的雙向繫結~~

如何在ES5與ES6環境下處理函式預設引數

函式預設值是乙個很提高魯棒性的東西 就是讓程式更健壯 mdn關於函式預設引數的描述 函式預設引數允許在沒有值或undefined被傳入時使用預設形參。眾所周知,在es5版本中,並沒有提供的直接方法供我們我們處理函式預設值 所以只能夠自己去增強函式的功能,一般會這麼來做 function dosome...

VC6環境下RichEdit2 0的乙個亂碼問題

最近在公司不忙,用閒暇時間,寫了個聊天室。公司的開發環境是vc6,原本是用的是edit control,由於希望支援表情功能,改為使用richedit控制項。可是發現乙個問題,雖然我使用的是unicode編譯的,顯示中文的時候有些字還是出現亂碼。網上查了一下,有說richedit2.0對unicod...

Ubuntu16 04環境下寫第乙個C語言程式

通過vm virtualbox虛擬機器配置好ubuntu16.04版本。然後我們在這個環境下執行第乙個c語言程式。以下是實現步驟 提前準備工作 建立乙個目錄例如名稱為test的目錄。通過mkdir test命令。然後進入這個目錄cd test。首先建立乙個.c檔案 vi helloworld.c 然...