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;