一.对象
什么是对象,其实就是一种类型,即引用类型。而对象的值就是引用类型的实例。在ECMAScript中引用类型是一种数据结构,用于将数据和功能组织在一起。它也常被称做为类,但ECMAScript中却没有这种东西。虽然ECMAScript是一门面向对象的语言,却不具备传统面向对象语言所支持的类和接口等基本结构。
引用类型的值(对象)是引用类型的一个实例。
var person = new Object();
这行代码创建了Object引用类型的一个实例,然后把实例保存在了变量person中。使用的构造函数是Object,它为新对象定义了默认的属性和方法。
二.创建Object
创建Object有两种方法:
一种是使用new运算符利用的是构造函数,一种是字面量表示法。
1. 使用new 运算符创建Object
var box = new Object ();
box.name = 'hcd' ;
box.age = 24 ;
2. new 关键字可以省略
var box = Object ();
3. 使用字面量方式创建Object
var box = {
name : 'hcd' ,
age : 24
};
4. 属性字段也可以使用字符串星矢
var box = {
'name' : 'hcd' ,
'age' : 24
};
5. 使用字面量及传统复制方式
var box = {};
box.name = 'hcd' ;
box.age = 24 ;
6.两种属性输出方式
alert(box.age) ;
alert(box['age' ]) ;
PS:在使用字面量声明Object 对象时,不会调用Object() 构造函数(Firefox除外)。
7. 给对象创建方法
var box = {
run : function () {
return '运行' ;
}
}
alert(box.run());
8. 使用delete 删除对象属性
delete box.name;
在实际开发过程中,一般我们更加喜欢字面量的声明方式。因为它清晰,语法代码少,而且还给人一种封装的感觉。字面量也是向函数传递大量可选参数的首选方式。
function hcd (person) {
var output = "" ;
if (typeof person.name == "string" ){
output += "name:" +person.name+"\n" ;
}
if (typeof person.age == "number" ){
output += "age:" +person.age+"\n" ;
}
alert(output)
}
hcd({
name:"hcd" ,
age:10
});