解讀:Object.defineProperty

Object.defineProperty

vuejs的雙向數(shù)據(jù)綁定就是通過(guò)他實(shí)現(xiàn)的(劃重點(diǎn)!~)

vuejs中data下的屬性都添加了set和get,所以數(shù)據(jù)改變觸發(fā)set,而set會(huì)觸發(fā)視圖更新。computed計(jì)算緩存就是這個(gè)道理,當(dāng)data沒(méi)有改變,computed會(huì)將之前計(jì)算的結(jié)果返回,從而形成計(jì)算緩存。

先來(lái)個(gè)demo:

var a={};

Object.defineProperty(a,"test",{

? ? value:2017

})

console.log(a.test);//2017

參數(shù)詳解:

第一個(gè)參數(shù):目標(biāo)參數(shù)

第二個(gè)參數(shù):需要定義的屬性或者方法的名字

第三個(gè)參數(shù):目標(biāo)屬性所擁有的特性(descriptor)

其中第三個(gè)參數(shù)還有以下參數(shù)!:

value:value值

writable:如果為false,屬性為只讀

configurable:總開(kāi)關(guān),如果為false,就不能在設(shè)置(value,writable,configurable 這里劃重點(diǎn)?。?/p>

enumerable:是否在for in ?中遍歷出來(lái)

set:訪問(wèn)器set

get:訪問(wèn)器get

如果只設(shè)置value,相當(dāng)于:

var a={};

Object.defineProperty(a,"test",{

value:2017,

writable:false,

enumerable:false,

configurable:false

})

console.log(a.test);//2017

但是只設(shè)置value,對(duì)set和get不起作用。

set和get

如果設(shè)置了set和get,就不能設(shè)置writable和value,否則會(huì)報(bào)錯(cuò)。

使用demo:

var a={};

Object.defineProperty(a,"testDemo",{

? ? set:function(val){

? ? ? ? ?console.log(val);

? ? },

? ? get:function(){

? ? ? ? ? return ?"get內(nèi)容"

? ? }

})

a.testDemo="我是set";//我是set

console.log(a.testDemo);//get內(nèi)容

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 來(lái)自:參 考 原 文 對(duì)象是由多個(gè)名/值對(duì)組成的無(wú)序的集...
    wyude閱讀 1,355評(píng)論 1 7
  • JS基礎(chǔ)講解 JavaScript組成ECMAScript:解釋器、翻譯DOM:Document Object M...
    FConfidence閱讀 622評(píng)論 0 1
  • 盡管javascript里有大量?jī)?nèi)建引用對(duì)象,很可能你還說(shuō)會(huì)頻繁創(chuàng)建自己的對(duì)象。當(dāng)你在這么做的時(shí)候,記得javas...
    WanLum閱讀 598評(píng)論 1 3
  • 感謝網(wǎng)絡(luò),讓我遇到你,這么可愛(ài)的你,素未謀面,卻讓我感到如此安心。人如其名。今天你說(shuō)想我了,我可以告訴你我也有同...
    瞳小瞳閱讀 199評(píng)論 1 1
  • 第二天。好快呀,種子冒白了,等著長(zhǎng)出小芽?jī)骸?/div>
    陳田有閱讀 214評(píng)論 0 0

友情鏈接更多精彩內(nèi)容