Javascript 中的引用类型(1)—— Object类型
2013-11-18 17:36
375 查看
ECMAScript 中的对象其实就是一组数据和功能的集合。对象可以通过 new 操作符后跟要新建的对象类型名称来创建。 而创建 Object 类型的实例并为其添加属性和方法,就可以创建自定义对象,例如:
在 ECMAScript 中,如果不给构造函数传递参数,则可以省略后面的那一对圆括号(不推荐):
这里需要理解一个重要思想,即在 ECMAScript 中,Object类型是所有其他实例的基础。换句话说,Object类型所具有的属性和方法也同样存在于其他对象中:
constructor:保存着用于创建当前对象的函数。对于前面的例子而言,构造函数(constructor)就是 Object()。
hasOwnProperty(propertyName):检查给定的属性在当前对象实例中是否存在(不是在实例的原型中)。propertyName必须以字符串形式指定。
isPrototypeOf(object):用于检查传入的对象是否是当前对象的原型。
propertyIsEnumerable(propertyName):用于检查给定的属性是否能够使用 for - in 语句枚举。
toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应。
toString():返回对象的字符串表示。
valueOf():返回对象的字符串、数值或布尔值表示。通常与 toString() 方法的返回值相同。
注:从技术角度讲,ECMA - 262 中对象的行为不一定适用于Javascript 中的其他对象。浏览器环境中的对象,比如BOM和DOM中的对象,都属于宿主对象,因为它们是由宿主实现提供和定义的。ECMA - 262 不负责定义宿主对象,因此宿主对象可能会也可能不会继承 Object。
到目前为止,我们看到的大多数引用类型值都是 Object 类型的实例。创建 Object 实例的方式有两种。第一种是使用 new 操作符后跟 Object 构造函数,如下所示:
另一种方式是使用对象字面量表示法。对象字面量是对象定义的一种简写形式,目的在于简化创建包含大量属性的对象的过程,如:
在使用对象字面量语法时,属性名也可以使用字符串,如:
这个例子会创建一个对象,包含三个属性:name、age和5。但这里的数值属性名会自动转换为字符串。
另外,使用对象字面量语法时,如果留空其花括号,则可以定义只包含默认属性和方法的对象,如:
一般来说,访问对象属性时使用的都是点表示法,这也是很多面向对象语言中通用的语法。不过,在Javascript 中也可以使用方括号表示法来访问对象属性。在使用方括号表示语法时,应该将要访问的属性以字符串的形式放在方括号中,如下所示:
从功能上看,这两种访问对象属性的方法没有任何区别。但方括号语法的主要优点是可以通过变量来访问属性,例如:
如果属性名中包含导致语法错误的字符,或者属性名使用的是关键字或保留字,也可以使用方括号表示法,例如:
由于“first name” 中包含一个空格,所以不能使用点表示法来访问它。然而,属性名中是可以包含非字母非数字的,这时候就可以使用方括号表示法来访问它们。
var o = new Object();
在 ECMAScript 中,如果不给构造函数传递参数,则可以省略后面的那一对圆括号(不推荐):
var o = new Object;
这里需要理解一个重要思想,即在 ECMAScript 中,Object类型是所有其他实例的基础。换句话说,Object类型所具有的属性和方法也同样存在于其他对象中:
constructor:保存着用于创建当前对象的函数。对于前面的例子而言,构造函数(constructor)就是 Object()。
hasOwnProperty(propertyName):检查给定的属性在当前对象实例中是否存在(不是在实例的原型中)。propertyName必须以字符串形式指定。
isPrototypeOf(object):用于检查传入的对象是否是当前对象的原型。
propertyIsEnumerable(propertyName):用于检查给定的属性是否能够使用 for - in 语句枚举。
toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应。
toString():返回对象的字符串表示。
valueOf():返回对象的字符串、数值或布尔值表示。通常与 toString() 方法的返回值相同。
注:从技术角度讲,ECMA - 262 中对象的行为不一定适用于Javascript 中的其他对象。浏览器环境中的对象,比如BOM和DOM中的对象,都属于宿主对象,因为它们是由宿主实现提供和定义的。ECMA - 262 不负责定义宿主对象,因此宿主对象可能会也可能不会继承 Object。
到目前为止,我们看到的大多数引用类型值都是 Object 类型的实例。创建 Object 实例的方式有两种。第一种是使用 new 操作符后跟 Object 构造函数,如下所示:
var person = new Object(); person.name = "Xqlun"; person.age = 29;
另一种方式是使用对象字面量表示法。对象字面量是对象定义的一种简写形式,目的在于简化创建包含大量属性的对象的过程,如:
var person = { name: "Xqlun", age: 29 };
在使用对象字面量语法时,属性名也可以使用字符串,如:
var person = { "name": "Xqlun", "age": 29, 5: true };
这个例子会创建一个对象,包含三个属性:name、age和5。但这里的数值属性名会自动转换为字符串。
另外,使用对象字面量语法时,如果留空其花括号,则可以定义只包含默认属性和方法的对象,如:
var person = {}; // 与 new Object() 相同
一般来说,访问对象属性时使用的都是点表示法,这也是很多面向对象语言中通用的语法。不过,在Javascript 中也可以使用方括号表示法来访问对象属性。在使用方括号表示语法时,应该将要访问的属性以字符串的形式放在方括号中,如下所示:
alert(person["name"]); // "Xqlun" alert(person.name); // "Xqlun"
从功能上看,这两种访问对象属性的方法没有任何区别。但方括号语法的主要优点是可以通过变量来访问属性,例如:
var propertyName = "name"; alert(person[propertyName]); // "Xqlun"
如果属性名中包含导致语法错误的字符,或者属性名使用的是关键字或保留字,也可以使用方括号表示法,例如:
person["first name"] = "Xu";
由于“first name” 中包含一个空格,所以不能使用点表示法来访问它。然而,属性名中是可以包含非字母非数字的,这时候就可以使用方括号表示法来访问它们。
相关文章推荐
- JavaScript引用类型Object常见用法实例分析
- javascript学习笔记 - 引用类型 Object
- javascript 引用类型 - Object类型
- javascript引用类型之object类型
- javascript引用类型之对象Object
- JavaScript高级程序设计之引用类型之Object 类型第5.1讲敏敏笔记
- JavaScript之引用类型(Object类型)
- JavaScript基础——引用类型(一)Object类型、Array类型
- 浅谈JavaScript引用类型——Object
- JavaScript学习笔记——引用类型:Object类型、function类型
- JavaScript的引用类型1(Object Array)
- Javascript基础引用类型之Object
- JavaScript引用类型--Object类型
- ES引用类型 之 Object & Array(摘至javaScript 高程3)
- JavaScript笔记——引用类型之Object类型和Function类型
- JavaScript之面向对象学习五(JS原生引用类型Array、Object、String等等)的原型对象介绍
- 读javascript高级程序设计07-引用类型、Object、Array
- 《JavaScript高级编程》学习笔记之object和array引用类型
- Javascript引用类型之Object类型
- javascript基本语法3 引用类型----Object