国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

JavaScrip關(guān)于創(chuàng)建常量的知識(shí)點(diǎn)

來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:24:00
文檔

JavaScrip關(guān)于創(chuàng)建常量的知識(shí)點(diǎn)

JavaScrip關(guān)于創(chuàng)建常量的知識(shí)點(diǎn):本文通過(guò)JS中創(chuàng)建常量的定義用法以及函數(shù)寫法中常見的錯(cuò)誤進(jìn)行深入分析,希望對(duì)大家有所用處: 所謂常量即只能讀取不能編輯(刪除,修改)的變量。 js并沒(méi)有原始的常量說(shuō)法(即自定義的,原生態(tài)的),但是可以用一些偏僻的路子去創(chuàng)建。 1:const es6中的
推薦度:
導(dǎo)讀JavaScrip關(guān)于創(chuàng)建常量的知識(shí)點(diǎn):本文通過(guò)JS中創(chuàng)建常量的定義用法以及函數(shù)寫法中常見的錯(cuò)誤進(jìn)行深入分析,希望對(duì)大家有所用處: 所謂常量即只能讀取不能編輯(刪除,修改)的變量。 js并沒(méi)有原始的常量說(shuō)法(即自定義的,原生態(tài)的),但是可以用一些偏僻的路子去創(chuàng)建。 1:const es6中的

本文通過(guò)JS中創(chuàng)建常量的定義用法以及函數(shù)寫法中常見的錯(cuò)誤進(jìn)行深入分析,希望對(duì)大家有所用處:

所謂常量即只能讀取不能編輯(刪除,修改)的變量。

js并沒(méi)有原始的常量說(shuō)法(即自定義的,原生態(tài)的),但是可以用一些偏僻的路子去創(chuàng)建。

1:const es6中的聲明關(guān)鍵詞。

上面聲明了兩個(gè)變量,當(dāng)執(zhí)行修改操作時(shí)就將報(bào)錯(cuò)。從某種程度上來(lái)說(shuō),const是可以創(chuàng)建變量(基本類型)的。但是對(duì)引用類型就捉襟見肘。

當(dāng)聲明的變量是一個(gè)引用類型時(shí)即對(duì)象,對(duì)對(duì)象的操作(刪除,修改,添加)都是可以進(jìn)行的。

2:Object 方法(defineProperty,seal,freeze)實(shí)現(xiàn)

1) Object.defineProperty:   該方法會(huì)直接在一個(gè)對(duì)象上定義一個(gè)新屬性,或者修改一個(gè)對(duì)象的現(xiàn)有屬性, 并返回這個(gè)對(duì)象。   

采用上述方法之后后續(xù)對(duì)a的修改功能就失效了,雖然修改功能不能正常執(zhí)行, 但是刪除功能卻還是可以照常進(jìn)行。

刪除之后繼續(xù)添加a屬性時(shí),a又變成可改的了。上述只是將a屬性的可寫屬性改了,還有一個(gè)configurable屬性可以進(jìn)行設(shè)置。writable屬性只是將對(duì)應(yīng)的屬性變更為不可直接更改,但是可以走小路(先刪除在添加)。

到此屬性a就算定下來(lái)了,及不能修改,也不能刪除。

但是,新的風(fēng)暴有出現(xiàn)了。。a雖然定下來(lái)了,但對(duì)于TEST_D這個(gè)變量來(lái)說(shuō),還沒(méi)有結(jié)束。。

雖然屬性a不能變動(dòng)了,但是并不影響對(duì)其他屬性的操作,比如b,s,u啊的,當(dāng)然針對(duì)這些屬性也可以像上述方式一樣將其余屬性的描述符,但是還是不能解決對(duì)TEST_D的擴(kuò)展。

2) Object.preventExtensions:  該方法讓一個(gè)對(duì)象變的不可擴(kuò)展,也就是永遠(yuǎn)不能再添加新的屬性。 查看詳情

通過(guò)該方法就可以將對(duì)象設(shè)置為不可擴(kuò)展了,即不可添加新屬性了,這樣這個(gè)變量就不能被修改了。

3)Object.seal:讓一個(gè)對(duì)象密封并返回被密封之后的對(duì)象,新對(duì)象將變得不可擴(kuò)展,即不能添加新的屬性但是可以修改原本可寫狀態(tài)的屬性

利用上述兩種方法循環(huán)使用是可以去創(chuàng)建常量的,但是比較復(fù)雜,而且當(dāng)對(duì)象比較大的時(shí)候,代碼量會(huì)比較大。Object.seal()可以簡(jiǎn)化這個(gè)過(guò)程。這個(gè)方法可以將對(duì)象變得不可擴(kuò)展,屬性不可刪除。在此基礎(chǔ)上在將對(duì)象的所有屬性的描述符writable改為false就能得到我們要的變量了,即所謂常量。

4) Object.freeze:  該方法可以凍結(jié)一個(gè)對(duì)象,凍結(jié)指的是不能向這個(gè)對(duì)象添加新的屬性,不能修改其已有屬性的值,不能刪除已有屬性,以及不能修改該對(duì)象已有屬性的可枚舉性、可配置性、可寫性。也就是說(shuō),這個(gè)對(duì)象永遠(yuǎn)是不可變的。該方法返回被凍結(jié)的對(duì)象。

Object.freeze方法是在seal基礎(chǔ)上在將所有屬性的描述符writable改為false。

但是當(dāng)變量的屬性值又為對(duì)象時(shí),及下列情況:

對(duì)于user屬性而言,他的值是還是可以更改的,這個(gè)時(shí)候就得對(duì)他也進(jìn)行凍結(jié)。

  

/**
 * 
 * 
 * @param {any} obj 
 */
function freezeObj(obj) {
 Object.freeze(obj);
 Object.keys(obj).forEach(key => {
 if (typeof obj[key] === 'object') {
 freezeObj(obj[key])
 }
 })
}

即:當(dāng)存在多重對(duì)象時(shí),需要循環(huán)調(diào)用凍結(jié)方法。

 3: 閉包

const USER = (() => {
 const USER = {
 name: 'evening',
 gender: 'M'
 }
 return {
 get(name){
 return user[name]
 }
 }
})()
USER.get('name')

閉包用了比較隱秘的方法,將真正的對(duì)象原型保存在內(nèi)存中而且不會(huì)被回收,變相的將USER這個(gè)變量‘保護(hù)'起來(lái),并且提供訪問(wèn)的接口,但是不提供修改的接口。

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

JavaScrip關(guān)于創(chuàng)建常量的知識(shí)點(diǎn)

JavaScrip關(guān)于創(chuàng)建常量的知識(shí)點(diǎn):本文通過(guò)JS中創(chuàng)建常量的定義用法以及函數(shù)寫法中常見的錯(cuò)誤進(jìn)行深入分析,希望對(duì)大家有所用處: 所謂常量即只能讀取不能編輯(刪除,修改)的變量。 js并沒(méi)有原始的常量說(shuō)法(即自定義的,原生態(tài)的),但是可以用一些偏僻的路子去創(chuàng)建。 1:const es6中的
推薦度:
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 在线国产毛片 | 久久福利网| 福利片一区二区 | 欧美激情亚洲激情 | 国产欧美日韩综合精品二区 | 欧美性一区二区三区五区 | 天天爱夜夜操 | 久久精品123 | 在线中文高清资源免费观看 | 欧美精品一区二区精品久久 | 欧美日韩精品乱国产538 | 国产午夜精品视频 | 久久伊人精品一区二区三区 | 国产成人久久精品二区三区 | 国产一二三区在线观看 | 国产高清美女一级a毛片久久 | 国产精品国产欧美综合一区 | 欧美日韩国产一区二区三区在线观看 | 99视频九九精品视频在线观看 | 国产精品成人一区二区不卡 | 一区二区三区在线视频观看 | 欧美不卡一区二区三区 | 激情欧美日韩一区二区 | 劲爆欧美精品13页 | 久久国产综合精品欧美 | 欧美色亚洲图 | 国产一区二区高清 | 日韩 亚洲 欧美 中文 高清 | 国产精品色综合久久 | 一区二区三区国产 | 91久久国产综合精品女同我 | 美女视频黄a视频全免费网站色 | 欧美日韩精品一区二区 | 亚洲伊人国产 | 在线播放一区二区 | 国产精品视频网站 | 精品亚洲性xxx久久久 | 国产精品成人麻豆专区 | 欧美视频日韩视频 | 日韩精品第三页 | 日本全黄|