- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ECMAScript 引用类型
ECMAScript 引⽤类型
引⽤类型通常叫做类 (class)。
本教程会讨论⼤量的 ECMAScript 预定义引⽤类型。
引⽤类型
引⽤类型通常叫做类 (class ),也就是说,遇到引⽤值,所处理的就是对象。
本教程会讨论 量的 ECMAScript 预定义引⽤类型。
从现在起,将重点讨论与已经讨论过的原始类型紧密相关的引⽤类型。
注意:从传统意义上来说,ECMAScript 并不真正具有类。事实上,除了说明不存在
类,在 ECMA-262 中根本没有出现“类”这个词。ECMAScript 定义了“对象定义” ,逻
辑上等价于其他程序设计语⾔中的类。
提⽰:本教程将使⽤术语“对象” 。
对象是由 new 运算符加上要实例化的对象的名字创建的。例如,下⾯的代码创建
Object 对象的实例:
var o = new Object();
这种语法与 Java 语⾔的相似,不过当有不⽌⼀个参数时,ECMAScript 要求使⽤括
号。如果没有参数,如以下代码所⽰,括号可以省略:
var o = new Object;
注意:尽管括号不是必需的,但是为了避免混乱,最好使⽤括号。
提⽰:我们会在对象基础这⼀章中更深⼊地探讨对象及其⾏为。
这⼀节的重点是具有等价的原始类型的引⽤类型。
Object 对象
Object 对象⾃⾝⽤处不 ,不过在了解其他类之前,还是应该了解它。因为
ECMAScript 中的 Object 对象与 Java 中的 j ava.lang .Object 相似,ECMAScript 中的所
有对象都由这个对象继承⽽来,Object 对象中的所有属性和⽅法都会出现在其他对象
中,所以理解了 Object 对象,就可以更好地理解其他对象。
Object 对象具有下列属性
constructor
对创建对象的函数的引⽤ (指针)。对于 Object 对象,该指针指向原始的
Object ) 函数。
Prototype
对该对象的对象原型的引⽤。对于所有的对象,它默认返回 Object 对象的⼀个
实例。
Object 对象还具有⼏个⽅法
hasOwnProperty property)
判断对象是否有某个特定的属性。必须⽤字符串指定该属性。 (例如,
o .hasOwnProperty name) )
IsPrototypeOf object)
判断该对象是否为另⼀个对象的原型。
PropertyIsEnumerable
判断给定的属性是否可以⽤ for ...in 语句进⾏枚举。
ToString )
返回对象的原始字符串表⽰。对于 Object 对象,ECMA-262 没有定义这个值,
所以不同的 ECMAScript 实现具有不同的值。
ValueOf )
返回最适合该对象的原始值。对于许多对象,该⽅法返回的值都与 ToString )
的返回值相同。
注释:上⾯列出的每种属性和⽅法都会被其他对象覆盖。
Boolean 对象
Boolean 对象是 Boolean 原始类型的引⽤类型。
要创建 Boolean 对象,只需要传递 Boolean 值作为参数:
var oBooleanObject = new Boolean(true);
Boolean 对象将覆盖 Object 对象的 ValueOf ) ⽅法,返回原始值,即 true 和 false 。
ToString ) ⽅法也会被覆盖,返回字符串 true 或 false。
遗憾的是,在 ECMAScript 中很少使⽤ Boolean 对象,即使使⽤,也不易理解。
问题通常出现在 Boolean 表达式中使⽤ Boolean 对象时。例如:
var oFalseObject = new Boolean(false);
var bResult = oFalseObject true; //输出 true
在这段代码中,⽤ false 值创建 Boolean 对象。然后⽤这个值与原始值 true 进⾏ AND
操作。在 Boolean 运算中,false 和 true 进⾏ AND 操作的结果是 false 。不过,在这⾏
代码中,计算的是 oFalseObject ,⽽不是它的值 false 。
正如前⾯讨论过的,在 Boolean 表达式中,所有对象都会被⾃动转换为 true ,所以
文档评论(0)