關於對象的一些問題

來源:互聯網
上載者:User

標籤:建立   cti   console   esc   數組   遍曆   對象   symbol   沒有   

      對象的屬性有屬性描述符的對象,即使沒有直接給出。

var obj = {       name: ‘objcet‘};

Objcet.getOwnpropertyDescriptor(obj, "name"); // 為:{value: "objcet", configurable: true, writable: true, enumerable: true}

//直接給出
Object.defineProperty(obj, "tool", {
value: "tool"
});

Objcet.getOwnpropertyDescriptor(obj, "tool"); // 為:{value: "tool", configurable: false, writable: false, enumerable: false}


   這裡預設含有一個對象描述符對象。且各項預設為true。我們可以對其進行多項操作。若我直接給出呢?這是若不在對象中明確給出,那麼就會預設為false。

   問題是這四個值重要嗎?

       value可以直接修改值,writable決定是否可以寫入,enumerable決定for in 語句、Objcet.keys()、o.propertyIsEnumerable(),configurable決定是否可以刪除屬性值以及是否可以配置。

   問題2:淺複製下不會對原有的描述符的屬性進行複製,也就是說其中的值預設為true。

   訪問器屬性:它們與value、writable是衝突的,只能給出一種形式。

var obj = {       get value () {        return this._value;         },       set value (v) {        this._value = v;        }};
//這是的value是不可枚舉、不可配置的。_value是可以枚舉配置的。

  枚舉

       for...in 語句會以[[prototype]]鏈的方式枚舉但枚舉的是屬性名稱。

var arr = [1, 2, 3];for (var i in arr) {     console.log(i);}
//值為:"0"、"1"、"2"

  另:Object.keys()、Objcet.getOwnPropertyNames()不會尋找原型鏈。

遍曆:

     數組內建@@iterator從而可以遍曆得到值,對於一個對象可以認為建立@@iteraror來與for of 語句搭配使用。下面是一個例子。

var random = {        [Symbol.iterator]: function () {                return {                      next: function () {                             return {                                    value: Math.random()                             };                       }                };        }};

 

關於對象的一些問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.