JS对象总结

一、创建对象  

  三种方式:对象直接量、关键字new和Object.create()函数

  Object.create()的第一个参数是这个对象的原型,

二、属性的查询

三、删除属性

  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的属性  

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

四、检测属性

  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;

五、对象的三个属性

  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.可扩展性

六、对象方法

  valueOf()方法

    将对象转换为某种原始值而非字符串的时候用得到它,例如Date.valueOf()。

七、数组方法

  slice()返回指定数组的一个片段或者子数组。包左不包右,如果参数出现了负数,代表相对于最后一个元素的位置,最后一个元素的位置为-1;

  

posted on 2018-03-02 15:02  花溪的小石头  阅读(179)  评论(0编辑  收藏  举报