JavaScript中创建对象大致有3种方式:
- 使用new关键字调用构造器创建对象
- 使用Object类创建对象
- 使用JSON语法创建对象
使用new关键字调用构造器创建对象
<script>
function Person(name,age){
this.name=name;
this.age=age;
}
var p1 = new Person();
var p2 = new Person('yeeku',29);
var per=new Person("牛魔王",22);
document.writeln("p1的属性如下:"+p1.name+p1.age+"<br>");
document.writeln("p2的属性如下:"+p2.name+p2.age+"<br>");
</script>
因为JavaScript支持空参数特性,所以调用函数时依然可以不传入参数,如果没有传入参数,则对应的参数值是undefined。
使用Object类创建对象
JavaScript的对象都是Object类的子类,因此可以采用如下方法创建对象
var myObj = new Object();
JavaScript既可以为对象动态地增加方法,也可以动态地增加属性
<script>
var myObj = new Object();
myObj.name = 'yeeku';
myObj.age = 29;
document.writeln(myObj.name + myObj.age);
</script>
JavaScript也允许将一个已有的函数添加为对象
<script>
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>
为对象添加方法时,不要在函数后添加括号。一旦添加了括号,将表示要把函数的返回值赋给对象的属性。
使用JSON语法创建对象
使用JSON创建数组时,数组的最后一个元素后面不能有逗号
<script>
var person =
{
name:'wawa',
age:29,
schools:['小学','中学','大学'],
parents:[
{
name :'father',
age :60,
address:'广州'
}
,
{
name :'mother',
age :58,
address:'深圳'
}
]
};
alert(person.parents[1]);
</script>