国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

個人理解:Object.defineProperty

lieeps / 486人閱讀

摘要:數(shù)據(jù)描述符是一個具有值的屬性,該值可能是可寫的,也可能不是可寫的。描述符必須是這兩種形式之一不能同時是兩者。注意點運(yùn)算符和為對象的屬性賦值時,數(shù)據(jù)描述符中的屬性默認(rèn)值是不同的,如下例所示。

一、概念語法
Object.defineProperty(obj,prop,descriptor)
參數(shù):
1.obj:要在其上定義屬性的對象
2.key:要定義或者修改的屬性
3.descriptor:將被定義或者修改的屬性描述符
返回值:
obj:傳遞給函數(shù)的對象
作用:
直接在一個對象上定義一個新屬性,或者修改一個對象的現(xiàn)有屬性, 并返回這個對象。
默認(rèn)情況下,使用Object.defineProperty()添加的屬性值是不可變的。
var obj = {},person="xiaoming"
Object.defineProperty(obj,"name",{
    get:function(){   // 獲取屬性值
        return person
    },
    set:function(value){    //設(shè)置屬性值
        person = value
    }
})
console.log(obj);            //{}   obj的屬性值  顏色是虛的,但是可以更改
console.log(obj.name);       //xiaoming
//設(shè)置屬性值
obj.name = "xiaohong";
console.log(obj)             //{}
console.log(obj.name);       //xiaohong

總結(jié):直接設(shè)置存取器屬性是無法直接在對象中體現(xiàn)出來console.log(obj); //{},需要執(zhí)行獲取方法

二、屬性描述符

對象里目前存在的屬性描述符有兩種主要形式:數(shù)據(jù)描述符和存取描述符。

數(shù)據(jù)描述符是一個具有值的屬性,該值可能是可寫的,也可能不是可寫的。

訪問器描述符是由getter-setter函數(shù)對描述的屬性。

描述符必須是這兩種形式之一;不能同時是兩者。

注意1:點運(yùn)算符和Object.defineProperty()為對象的屬性賦值時,數(shù)據(jù)描述符中的屬性默認(rèn)值是不同的,如下例所示。

var o = {};

o.a = 1;
// 等同于 :
Object.defineProperty(o, "a", {
  value : 1,
  writable : true,
  configurable : true,
  enumerable : true
});


// 另一方面,
Object.defineProperty(o, "a", { value : 1 });
// 等同于 :
Object.defineProperty(o, "a", {
  value : 1,
  writable : false,
  configurable : false,
  enumerable : false
});
因此:默認(rèn)情況下,使用Object.defineProperty()添加的屬性值是不可變的。
因為默認(rèn)writalbe:false,不可寫

示例

Object.defineProperty(obj,"name",{
    value:"xiaoming"
});
console.log( obj.name );  //xiaoming 

console.log(obj)            //{name:"xiaoming"}
//此時修改屬性值不可變
obj.name = "";
console.log(obj.name);    //xiaoming  仍然是,值不變

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/107414.html

相關(guān)文章

  • defineProperty詳解

    摘要:擱置了幾天我還是決定再次重寫下邊我們來具體聊聊先從開始說起有個定義屬性的功能,應(yīng)該沒幾個人用,因為相對于這種方式簡直不能再難用。 擱置了幾天我還是決定再次重寫! 下邊我們來具體聊聊先從defineProperty開始說起 defineproperty //defineproperty 有個定義object屬性的功能,應(yīng)該沒幾個人用,因為相對于obj.a = 1這種方式簡直不能再難用。 ...

    charles_paul 評論0 收藏0
  • JavaScript中的Object.defineProperty()和defineProperti

    摘要:語法將要被添加屬性或修改屬性的對象該對象的一個或多個鍵值對定義了將要為對象添加或修改的屬性的具體配置張三張三功能該方法返回指定對象上一個自有屬性對應(yīng)的屬性描述符。 文章同步到github ECMAS-262第5版在定義只有內(nèi)部采用的特性時,提供了描述了屬性特征的幾種屬性。ECMAScript對象中目前存在的屬性描述符主要有兩種,數(shù)據(jù)描述符(數(shù)據(jù)屬性)和存取描述符(訪問器屬性),數(shù)據(jù)描述...

    sanyang 評論0 收藏0
  • Vue 響應(yīng)式實現(xiàn)原理(個人在學(xué)習(xí)完Vue基礎(chǔ)的情況下的理解

    摘要:對象用戶看到的對象用戶看到的是這個對象即是實際使用的對象實際使用的對象復(fù)制更新相應(yīng)的代碼實現(xiàn)對象代理響應(yīng)式原理前提官網(wǎng)說過,限于現(xiàn)代瀏覽器限制,無法監(jiān)測通過這種方式添加的屬性,所以,他的響應(yīng)式是建立在實例化對象的時候,預(yù)定義屬性的基礎(chǔ)上的。 1. Vue 對象 1.1 用戶看到的對象 var app = new Vue({ el: #app , /* * 用...

    zsy888 評論0 收藏0
  • 數(shù)據(jù)劫持與數(shù)據(jù)代理

    摘要:數(shù)據(jù)劫持?jǐn)?shù)據(jù)劫持即使用實現(xiàn)了的雙向綁定。不輸出內(nèi)容數(shù)據(jù)代理即代理的意思。的攔截處理器除了外還支持多種攔截方式,具體請查閱官方文檔嵌套查詢。實際上也是不支持嵌套查詢的。 數(shù)據(jù)劫持 數(shù)據(jù)劫持即使用Object.defineProperty()實現(xiàn)了vue的雙向綁定。先來看看它是如何實現(xiàn)的 let obj = {}, txt = Object.defineProperty(obj,txt,...

    468122151 評論0 收藏0
  • 160行代碼仿Vue實現(xiàn)極簡雙向綁定[詳細(xì)注釋]

    摘要:兼容性更詳細(xì)的可以看一下實現(xiàn)思路系列的雙向綁定,關(guān)鍵步驟實現(xiàn)數(shù)據(jù)監(jiān)聽器,用重寫數(shù)據(jù)的,值更新就在中通知訂閱者更新數(shù)據(jù)。 showImg(https://segmentfault.com/img/remote/1460000015375220?w=640&h=426); 前言 現(xiàn)在的前端面試不管你用的什么框架,總會問你這個框架的雙向綁定機(jī)制,有的甚至要求你現(xiàn)場實現(xiàn)一個雙向綁定出來,那對于...

    endiat 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<