对象的概念
本课程目的:
- 理解什么是对象
- 如何定义类或对象
声明和实例化
创建Object实例的方式有两种:
1. 创建自定义对象的最简单方式就是创建一个Object实例,然后为它添加属性和方法,如下:
1 2 3 4 5 6 7 8 9 | //创建一个新的Object对象,存放在'person'变量中var person = new Object(); //给此对象设置一些属性person.name = "Nicholas"; person.age = 29; person.job = "Software Engineer";person.sayName = function(){ alert(this.name); } |
2. 按照字面量语法可以写成:
1 2 3 4 5 6 7 8 | var person = { name : "Nicholas", age : 29, job : "Software Engineer", sayName : function(){ alert(this.name); } }; |
或者
1 2 3 4 5 6 7 | var person = {}; //与new Object()相同person.name = "Nicholas"; person.age = 29; person.job = "Software Engineer";person.sayName = function(){ alert(this.name); } |
对象引用
在 ECMAScript 中,不能访问对象的物理表示,只能访问对象的引用。每次创建对象,存储在变量中的都是该对象的引用,而不是对象本身。
对象废除
因ECMAScript拥有无用存储单元收集程序(garbage collection routine),想要废除某一对象时,把对象的所有引用都设置为 null,当变量 oObject 设置为 null 后,对第一个创建的对象的引用就不存在了。这意味着下次运行无用存储单元收集程序时,该对象将被销毁。每用完一个对象后,就将其废除,来释放内存,这是个好习惯。
1 2 3 | var oObject = new Object;// do something with the object hereoObject = null; |
注意:废除对象的所有引用时要当心。如果一个对象有两个或更多引用,则要正确废除该对象,必须将其所有引用都设置为 null。
属性的访问
1 2 3 4 | //方括号访问:alert(person["name"]); //"Nicholas"//点表示法:alert(person.name); //"Nicholas" |
一般来说,访问对象属性推荐使用点表示法。在有些特殊情况下用方括号语法:
1. 通过变量访问属性
1 2 | var propertyName = "name";alert(person[propertyName]); //"Nicholas" |
2. 属性名中包含会导致语法错误的字符,或者属性名使用的是关键字或保留字
1 | person["first name"] = "Nicholas"; |