转载自重庆PHp:http://www.php-chongqing.com/index.php/article/26
对象是Javascript的基础,在Javascript中所有的东西都是面向对象的。Javascript是一门彻底的面向对象的语言。
在Javascript中创建对象的方式有很多种,你可以使用以下几种方式在Javascript中创建对象。
利用内置Object对象,完成对象创建
var obj = new Object(); // 创建一个新的Object对象,把这个对象的实例存入变量'obj'中。 // 为'obj'对象设置属性和方法 obj.val = 5; obj.click = function() { alert("hello"); }
函数式创建
因为Javascript中并没有类(class)的概念,任何函数都可以被实例化为一个对象。
// 创建一个新的User构造函数 function User(name, age) { this.name = name; this.age = age; } var user = new User(); alert("name:" + user.name);
在上面的代码中,我们定义了函数User(),接着我们执行new User(),函数怎么能new?
在Javascript中函数就是对象,好吧,你可以把函数User()理解为构造函数,所以,你可以执行new User()得到一个User()对象的实例。
晕了没?漂移的Javascript!
简单对象创建
var obj = { val: 5, click: function() { alert("hello"); } }
简单对象使用{...}简写方式来创建对象,结合键值对(key/value)来定义属性。
用Java或是其它面向对象语言来理解,上述代码相当于定义了一个Class类,然后实例化了这个Class,并把这个实例赋值给变量obj。
简单对象,在Javascript非常常用,因为它使用起来简单方便。
原型方式创建对象(推荐)
// 创建一个新的User构造函数 function User(name, age) { this.name = name; this.age = age; } // 将一个新的函数添加到此对象的prototype对象中 User.prototype.getName = function() { return this.name; } // 并再给此prototype对象添加一个函数, User.prototype.getAge = function() { return this.age; } // 实例化一个新的User对象 var user = new User("Bob", 44); user.getAge();
我们推荐使用原型方式来定义Javascript对象,Javascript的每个对象/函数,上面已经说了函数其实也是对象,都有一个prototype属性,
你可以把prototype属性理解为对象对自己实例的一个引用。