1 , for / in : 一種遍歷(枚舉)對象屬性的方法,可以循環(huán)我們呢事先不知道的屬性。 它可以枚舉處用戶定義的所有屬性,但卻不能枚舉出某些預(yù)定義的屬性和方法。 不能枚舉的屬性通常是繼承的屬性
刪除一個對象的屬性: delete book.width ; 從對象中移除了屬性,在刪除之后,用for/in將不會枚舉該屬性,并且用width in book 也檢測不到該屬性。
for/in 的另一個重要的用途就是跟關(guān)聯(lián)數(shù)組一起使用:(如果忘記關(guān)聯(lián)數(shù)組的定義,可以看前面的章節(jié)。) for(stoct in port ){ value + = get_value(stoct) * port[stoct] ; }
2 , 通用的Object屬性和方法: 1):constructor屬性: 每個對象都有這個屬性,他引用了初始化這個對象的構(gòu)造函數(shù)。 比如: var d =new Date(); //使用Date()構(gòu)造函數(shù),創(chuàng)建一個對象 d; d.constructor ==Date; //true //屬性d.constructor引用 Date ;
4 , hasOwnProperty()和propertyIsEnumerable()方法: 1):hasOwnProperty var a = { x : 1 , y : 2}; var k =a.hasOwnProperty("x"); alert(k) //true alert( Math.hasOwnProperty("z") );//false alert( Math.hasOwnProperty("cos") );//true 注:Math,cos() : 以弧度為單位計算并返回指定角度的余弦值。 propertyIsEnumerable()跟返回的結(jié)果跟hasOwnProperty()相同;
4 ,isPrototypeOf()方法: 如果方法所屬的對象是參數(shù)的原型對象。 var a = { x : 1 , y : 2}; var k1= Object.prototype.isPrototypeOf(a); // o.constructor = Object var k2= Object.prototype.isPrototypeOf(Function); // Function.constructor = Object alert(k1) //true alert(k2) //true
5,數(shù)組: 1)創(chuàng)建數(shù)組: 數(shù)組直接量: var es = [ ] ; 復(fù)雜點(diǎn) var es = [ [ 1, {x:1 , y : 2}] , [ 2, {x:3 , y : 4}] ]; 還有一種方式:使用Array() 構(gòu)造函數(shù): V1 : 無參數(shù): var a = new Array(); 空數(shù)組,和 var a =[ ] 相等 ;
V2 : 多個參數(shù): var a = new Array( 1,2,3,”tt”) ; //可以看出直接量定義 簡單些。
V3 : 1個數(shù)字參數(shù): var a = new Array (3); 具有3個元素的數(shù)組,每個元素的值為 undefined ;