通過var object={} 對象字面量,可以叫對象直接量來自定義一個對象
對象自面量是一個表達式,這個表達式的每次運算都創建並初始化一個新對象。每次計算對象字面量的時候,也都會計算他的每個屬性值。也眩光是說,如果在一個重復調用的函數中的循環體內使用了對象的直接量,它將創建很多新對象,並且每次創建的對象的屬性值也有可能不同。
演示代碼:
1 <script> 2 var people ={x:1,y:2,z:3} //用字面量定義一個對象,是以名值對的方式來保存的 3 var student = { //還可以換行寫,每義定一個屬性名和值,用逗號分開,最后一個不加逗號,加了會被忽略,但在ie中會報錯,最好不要加 4 "x":1, //定義屬性名的時候可以用雙引號 5 'y':2, //定義屬性名的時候可以用單引號 6 z:12.3, //定義屬性名的時候可以加任何 7 "for":"使用關鍵字來定義屬性名要加上引號", //使用關鍵字定義的話必須加上雙引號 8 man:{ //對象里面還可以簽到對象 9 text:null, //對象的屬性值可以是多種數據類型 10 text2:undefined, 11 married:true 12 } 13 } 14 </script>
可以通過 var obj = new Object();創建對象 演示代碼:
1 <script> 2 var obj = new Object() //創建了一個對象,object對象也是對象中的頂級對象 3 var arry = new Array() //創建了一個數組對象 4 var date = new Date() //創建一個時間對象 5 var reg = new RegExp("js") //創建一個正則對象 6 </script>
通過構造函數來創建對象
通過instanceof操作符可以檢測一個對象是否由某個指定的構造器函數來創建的對象
注意:
使用的時候可以通過new操作符得到對象。
用構造器創建對象的時候可以接收參數
構造器函數的首首字母最好大寫,區別其他的一般函數 演示代碼:
1 <script> 2 function Person(name,age){ //創建一個person的函數 3 this.name =name; //此處的this對應的是對象obj 4 this.age = age 5 } 6 var obj = new Person("ziksang",21) //用一個構造函數來創建了對象 7 alert(obj.name) //=>ziksang 用對象名.對象的屬性來獲得屬性值 8 alert(typeof obj) //=>用typeof來檢測obj是不是一個對象類型, 返回object 9 alert(obj instanceof Person) //=> 用instanceof 來檢測objcet是不是person函數構造出來的對象,返回true 10 </script>
通過object.create來創建對象
演示代碼:
1 <script> 2 var obj = Object.create({x:1}) 3 var obj = Object.create(null) //創建了一個沒有原型的對象,沒有任何方法 4 var obj = Object.create(obj.prototype) //創建了一個普通的空對象 5 </script>