日期:2014-05-16 浏览次数:20525 次
一、对象创建方式?
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)?函数方式
包含的方式比较多,流行的是构造函数/原型方式?,当然也可看看jquery和extjs的源码看看别人都再用什么样的方式。
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>