日期:2014-05-16  浏览次数:20390 次

JavaScript语言基础(五) 自定义对象

一、对象创建方式?

1)?对象初始化器方式

格式:objectName?=?{property1:value1,?property2:value2,…,?propertyN:valueN}?,可以想象为一个HashMap;这里其实是JSON数据类型
property是对象的属性
value则是对象的值,值可以是字符串、数字或对象三者之一
例如:?

?

<html>
<head>
<title>test</title>
<script type="text/javascript">
function test() {
var user = {
name : "user1",
age : 18,
getName : function() {
return this.name;
}
}
alert(user.name);//直接取对象的属性值
//或者用下面这样也可以取值
alert(user['name']);
alert(user.getName());//调用方法
}
</script>
</head>
<body onload="test()"></body>
</html>
?

2)?函数方式

包含的方式比较多,流行的是构造函数/原型方式?,当然也可看看jqueryextjs的源码看看别人都再用什么样的方式。

a.?工厂方式;

b.?构造函数方法;

c.?原型方式;

d.?混合的构造函数/原型方式;

e.?动态原型方法;

f.?混合工厂方式;

举一个简单例子

<html>
<head>
<title>test</title>
<script type="text/javascript">
//定义对象User;采用“构造函数方法”
function User1(name) {
this.name = name;
this.getName = function() {
return this.name;
}
}
//定义对象User2;采用“原型方式”
function User2() {};
User2.prototype.name ="hello world";
User2.prototype.setName = function(name) {
this.name = name;
}
User2.prototype.getName = function() {
return this.name;
}
//测试
function test() {
//创建对象实例
var user = new User1("name1");
alert(user.name);
alert(user.getName());
var user2 = new User2();
user2.setName("name2");
alert(user2.name);
alert(user2.getName());
}
</script>
</head>
<body onload="test()"></body>
</html>