- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
web系统助手设计与实现-文献翻译
ECMA-262,5rd(重要章节)
4.2 语言概述
下面是一个ECMAScript非正式的概述,并非语言的所有部分都被阐述。这概述不属于标准文献章节的一部分。
ECMAScript是基于对象的:基本的语言和宿主能力被对象提供,ECMAScirpt程序是对象间交流的集合。对象是一个无序的属性集合,每个属性又拥有零个或者多个子属性,这些子属性决定先前的父属性能够被使用----比如,当一个父属性的子属性被设置为true时,任何想通过执行ECMAScript代码而改变这个父属性都是无效的。属性是一种容器,这种容器包含了其它对象,原生值,或者方法。一个原生值是下面内建类型的成员:Undefined,Null,Boolean,Number,和String;一个对象是内建类型Object的成员;方法是函数,这个函数能够通过对象内部属性与对象建立关联。
ECMAScript 定义了一个内建对象集合,这些内建对象圆满完成了定义这个ECMAScirpt实体。这些内建对象包括Global对象,Object对象,Function对象,Math对象,Date对象,RegExp对象和错误对象Error,EvealError,RangeError,referenceError,SyntaxError,TypeError和URLError。
ECMAScript也定义了一个内建运算符集合。这些内建运算符严格上来说也许不是函数或者方法。ECMAScript 运算符包括各种各样的一元运算符,多元运算符,叠加运算符,位移运算符,关系运算符,相等运算符,二进按位运算符,二进制逻辑运算符,分配运算符和逗号运算符。
ECMAScript 语法有意地与JAVA语法相似。ECMAScript语法作为一门对于服务端语言较容易使用的脚本语言是不严格的。比如,一个变量不需要申明与属性有关的类型,定义一个函数不要求申明在调用它之前的位置。
4.2.1 对象
ECMAScript 不包含像C++,Smalltalk,或者Java真正的类,但它有相当的,被支持的构造器。构造器通过执行代码为对象分配存储空间并且通过对他们的属性分配初始化值来初始化这些对象的所有或者一部分。所有的构造器是对象,但并不是所有的对象都是构造器。每个构造器拥有Prototype属性,这个属性用于实现“基于Prototype”的继承和共享想属性。可以用New表达式来使用构造器创建对象;比如,new String(“A String”) 创建一个新的字符串对象。不使用new调用一个构造器将会产生一个影响,这个影响由构造器决定。比如,String(“A String”)产生一个原生字符串,不是一个对象。
ECMAScript 支持“Prototype-based”继承。每一个构造器有一个相关联的Prototype,每一个被构造器创建的对象有一个暗藏的引用(被叫做对象的Prototype)指向这个构造器的Prototype。除此之外,构造器的这个Prototype对象有可能也有一个非空的引用指向构造它的构造器的Prototype。以此类推,这就被称作原型链。当一个引用被作为一个对象的属性,对于这个对象属性的引用会命名在原型链的第一个对象,这个对象会包含一个相同名字的属性。换句话来讲,被提及的第一个对象会直接被检测是否包含一个属性;如果那个对象包含被命名属性,那么这个属性就是这个引用指向的对象的属性。如果那个对象不包含这个已命名的属性,那个对象的属性将会接着在下一个对象中查找。如此一直找下去。
在一个基于类面向对象的语言中,一般来说,状态由实例左右,方法由类左右,继承的仅仅是结构和行为。在ECMAScript中,状态和方法都是被对象左右,并且结构,行为和状态全部会被继承。
所有那些不会直接包含一个特殊属性(这个属性会由那些对象的属性包含)的对象会共享他们的属性和属性的值。图解说明如下:
CF 是一个构造器(也是一个对象)。5个对象已经被new表达式创建cf1,cf2,cf3,cf4 和cf5。这5个对象中的每一个对象包含一个属性被命名为q1和q2。虚线表示隐藏的原型关系;例,cf3的原型是CFp。这个构造器为CF,CF自己拥有两个属性,被命名为P1和P2,每一个对于CFp,cf1,cf2,cf3,cf4和cf5都是不可见的。这个在CFp中被命名为CFP1的属性是被cf1,cf2,cf3,cf4,cf5共享(但不被CF共享),因而是任何的属性都能在CFP隐藏的原型链中被找到,这个原型链没有被命名q1,q2和CFP1。注意这里没有隐藏的属性链接在CF和CFp之间。
与基于类对象语言不同,ECMAScript 属性能够通过分配值而被动态地添加到对象中。那是因为构造器没有依赖于名字和属性的值去构造对象的全部和部分属性。在上面的
您可能关注的文档
最近下载
- 迈富时 上市招股说明书.pdf VIP
- 年产3500吨对羟基苯甲酸乙酯(食品添加剂)项目可行性研究报告.docx VIP
- HMMT_-_哈佛-MIT数学竞赛题.pdf
- 资金平衡表.doc VIP
- 小学生四年级上册暑假练字电子字帖生字写字表提前学习练习楷书字帖pdf可打印文件.pdf VIP
- 氢氟酸安全标签.doc VIP
- 2025年全国统一高考生物试卷(江西卷)含答案 .pdf VIP
- 《义务教育数学课程标准(2022年版)》【试题】题库及答案汇总.docx VIP
- 八年级上册历史《中华民族的抗日战争》单元作业设计 (优质案例50页) .pdf VIP
- 商务日语函电第2课 支払い遅延の依頼と回答.ppt VIP
文档评论(0)