1. 使用new关键字调用构造器创建对象
使用new关键字调用构造器创建对象,这是最接近面向对象语言创建对象的方式,new关键字后紧跟函数的方式非常类似于Java中的new后紧跟着构造器方式,通过这种方式创建对象简单、直观。JavaScript中所有的函数都可以作为构造器使用,使用new调用函数后总可以返回一个对象。看下面的代码。
<script type="text/javascript">
// 定义一个函数,同时也定义了一个Person类
function Person(name , age)
{
//将name、age形参赋值给name、age实例属性
this.name = name;
this.age = age;
}
// 分别以两种方式创建Person实例
var p1 = new Person();
var p2 = new Person('yeeku' , 29);
// 输出p1的属性
document.writeln("p1的属性如下:"
+ p1.name + p1.age + "<br />");
// 输出p2的属性
document.writeln("p2的属性如下:"
+ p2.name + p2.age);
</script>
执行结果:
2. 使用Object直接创建对象
使用这种方法来创建对象,也是很简单的,我们来看一个,使用Object来创建对象,并且将一个已有的函数添加为对象的方法。
<script type="text/javascript">
//创建空对象
var myObj = new Object();
//为空对象增加属性
myObj.name = 'yeeku';
myObj.age = 29;
//创建一个函数
function abc()
{
document.writeln("对象的name属性:" + this.name);
document.writeln("<br />");
document.writeln("对象的age属性:" + this.age);
};
//将已有的函数添加为对象的方法
myObj.info = abc;
document.writeln("<hr />");
//调用方法
myObj.info();
</script>
运行结果:
3. 使用JSON语法创建对象
JSON语法提供了一种更加简单的方式来创建对象,使用JSON语法可避免书写函数,也可避免使用new关键字,可以直接创建一个JavaScript对象。为了创建JavaScript对象,可以使用花括号,然后将每个属性写成“key:value”对的形式。
<script type="text/javascript">
// 定义一个对象
var person =
{
// 定义第一个简单属性
name : 'wawa',
// 定义第二个简单属性
age : 29 ,
// 定义第三个属性:数组
schools : ['小学' , '中学' , "大学"],
// 定义第四个属性,对象数组
parents :[
{
name : 'father',
age : 60,
address : '广州'
}
,
{
name : 'mother',
age : 58,
address : '深圳'
}
]
};
alert("first:"+person.parents[0].name+","+person.parents[0].age+","+person.parents[0].address +
"\nsecond:"+person.parents[1].name+","+person.parents[1].age+","+person.parents[1].address);
</script>
执行结果: