3. 对象和属性 对象的创建 使用 new 运算符创建对象 var o = new Object(); var now = new Date(); 使用对象直接量创建并初始化对象 var circle = { x:0, y:0, radius:2 }; var person = { name: “John”, age: 30, married: true }; (sample1)
4. 对象和属性 属性的设置和查询 通常使用“ .” 运算符来存取对象的属性。 var book = new Object(); book.title = “Javascript reference”; alert(book.title); js 可以通过赋值来创建对象的属性。 创建属性时不需要使用关键字“ var” 。 属性创建后可以在任何时间修改它的值。
5. 对象和属性 属性的枚举 使用 for/in 循环来枚举对象的属性。 function displayPropertyNames(obj) { var names = “”; for (var name in obj) names += name + “\n”; alert(names); }( sample2 ) 这种方法 可以枚举所有用户自定义的属性,但是不能枚举出某些预定义的属性或方法。
6. 对象和属性 未定义的属性 读取不存在的属性时,结果是” undefined” 。 var o = new Object(); alert(o.title); 使用运算符 delete 来删除一个对象的属性。 var o = new Object(); o.title=“javascript reference”; delete o.title; ( sample3 )
7. 构造函数 构造函数是具有两个特性的 JavaScript 函数: 它由 new 运算符调用。 传递给它的是一个对新创建的空对象的引用,将该引用作为关键字 this 的值,而且它还要对新创建的对象进行适当的初始化。 function Rectangle(w, h) { this.width = w; this.height = h; } var rect1 = new Rectangle(2, 4); 构造函数通常没有返回值,但是它可以返回一个对象,如果这样做,被返回的对象将成为 new 表达式的值,而 this 所引用的对象将被丢弃。
8. 方法 方法就是通过对象调用的 JavaScript 函数。 方法的定义方式与属性的定义方式相同。 var o = new Object(); o.m = function() {alert(“method”);}; o.m(); 方法有一个非常重要的属性:在方法体内部,关键字 this 是调用该方法的对象。
13. 实例属性 每个对象都有单独的实例属性的副本 Circle 类中有 r 属性,那么每个 Circle 对象的实例都会有一个 r 属性。 实例属性是通过实例存取的。 c.r = 3; 默认情况下, JavaScript 中的任何对象属性都是实例属性。 为了真实地模拟面向对象的程序设计语言,我们把那些在对象中用构造函数创建或初始化的属性称为实例属性。