JavaScript中有以下三种方法创建对象
- 使用内置的对象 : var 对象名 = new Object();
- 使用JSON格式 : var 对象名 = {key : value, key : value}
- 自定义对象构造 : function 对象名(){}
使用内置的对象
JavaScript可用的内置对象可分为两种:
1,JavaScript语言原生对象(语言级对象),如String、Object、Function等;
2,JavaScript运行期的宿主对象(环境宿主级对象),如window、document、body等。
var object = new Object();//示例初始化一个Object
var str = new String("xxxx");
var str1 = "xxxx";
var 函数名 = new Function(参数,函数体);
var func = new Function("x","alert(x)");//示例初始化
使用JSON 的格式
var somebooks = {
book:[{name:"三国演义"},{name:"西游记"},{name:"水浒传"},{name:"红楼梦"}],
author:[{name:"罗贯中"},{name:"吴承恩"},{name:"施耐安",{name:"曹雪芹"}}]
}
JSON的每个“键”相当于对象的属性,例如访问book中的第一个条目,在JavaScript中,就可以简单地使用“somebooks.book[0].name”来获取“三国演义”这个值。
自定义对象构造
创建高级对象构造有两种方式:使用“this”关键字构造、使用原型prototype构造。如:
//使用this关键字定义构造的上下文属性
function Girl()
{
this.name = "big pig";
this.age = 20;
this.standing;
this.bust;
this.waist;
this.hip;
}
//使用prototype
function Girl(){}
Girl.prototype.name = "big pig";
Girl.prototype.age = 20;
Girl.prototype.standing;
Girl.prototype.bust;
Girl.prototype.waist;
Girl.prototype.hip;
alert(new Girl().name);
“this”与“prototype”定义的另一个不同点是属性的占用空间不同。使用“this”关键字,示例初始化时为每个实例开辟构造方法所包含的所有属性、方法所需的空间,而使用“prototype”定义,由于“prototype”实际上是指向父级的一种引用,仅仅是个数据的副本,因此在初始化及存储上都比“this”节约资源。
以上部分我节选或修改自:http://www.jb51.net/article/20428.htm
对象的调用方法
对象具有属性和方法:
调用:
对象名.属性名;
对象名.方法名();
修改:
对象名.属性名 = 新的属性值;
对象名.方法名 = 新的function
增加:
对象名.新的属性名 = 新的属性值;
对象名.新的方法名 = 新的function
删除:
delete 对象名.属性名;
delete 对象名.方法名;