一、创建对象
三种方式:对象直接量、关键字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;