通过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>