日期:2014-05-16 浏览次数:20397 次
一、对象创建方式?
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>