JS對象總結

1、建立對象  數組

  三種方式:對象直接量、關鍵字new和Object.create()函數函數

  Object.create()的第一個參數是這個對象的原型,spa

2、屬性的查詢prototype

3、刪除屬性code

  delete運算符能夠刪除對象的屬性,只能刪除自有屬性, 不能刪除繼承屬性。 對象

    // delete只是斷開屬性和宿主對象的聯繫,因爲已經刪除的引用依然存在
    // 所以會形成內存泄漏,因此在銷燬對象時,要遍歷屬性中的屬性,依次刪除
    var a = {b:{x:1}};
    var c = a.b;
    delete a.b;
    console.log(c.x); // 1
    console.log(c); // {x:1}
    console.log(a); // {}

  delete不能刪除那些可配置性爲false的屬性  blog

    console.log(delete Object.prototype); // false,該屬性是不可配置的

4、檢測屬性繼承

  1.in運算符內存

    in運算符左側是屬性名(字符串),右側是對象。若是對象的自有屬性或繼承屬性中包含這個屬性就返回true。   字符串

    var o = {x:1};
    console.log("x" in o); // true
    console.log("y" in o );// false
    console.log("toString" in o); // true o繼承toString屬性

  2.對象的hasOwnProperty()方法用來檢測給定的名字是不是對象的自有屬性,對於繼承屬性它會返回false。

  3.對象的propertyIsEnumerable()檢測是不是自有屬性而且這個屬性是不是可枚舉的,兩個條件同時知足纔會返回true; 

 var o = {};
    o.x = 1;
    console.log(o.propertyIsEnumerable("x")); // true;

5、對象的三個屬性

  1.原型屬性

    var p = {x:1};
    var q = Object.create(p);
    console.log(Object.prototype.isPrototypeOf(p)); //true
    console.log(Object.prototype.isPrototypeOf(q)); // true

  2.類屬性

  3.可擴展性

6、對象方法

  valueOf()方法

    將對象轉換爲某種原始值而非字符串的時候用獲得它,例如Date.valueOf()。

7、數組方法

  slice()返回指定數組的一個片斷或者子數組。包左不包右,若是參數出現了負數,表明相對於最後一個元素的位置,最後一個元素的位置爲-1;

相關文章
相關標籤/搜索