- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JAVASCRIPT对象模型 执行模型
JavaScript对象模型-执行模型
数据类型
基本数据类型
基本数据类型是JS语言最底层的实现。
简单数值类型: 有Undefined, Null, Boolean, Number和String。注意,描述中的英文单
词在这里仅指数据类型的名称,并不特指JS的全局对象N an, Boolean, Number, String
等,它们在概念上的区别是比较大的。
对象: 一个无序属性的集合,这些属性的值为简单数值类型、对象或者函数。同上,这里的
对象并不特指全局对象Object。
函数: 函数是对象的一种,实现上内部属性[[Class]]值为Function,表明它是函数类型,
除了对象的内部属性方法外,还有[[Construct]]、[[Call]]、[[Scope]]等内部属性。函数
作为函数调用与构造器(使用new关键字创建实例对象)的处理机制不一样(Function对象除
外),内部方法[[Construct]]用于实现作为构造器的逻辑,方法[[Call]]实现作为函数调用
的逻辑。同上,这里的函数并不特指全局对象Function。
函数在JS这个Prototype语言中可以看作是面向对象语言的类,可以用它来构造对象实例。
既然函数可以看作是类,所以每一个函数可以看作是一种扩展数据类型。
内置数据类型(内置对象)
Function: 函数类型的用户接口。
Object: 对象类型的用户接口。
Boolean, Number, String: 分别为这三种简单数值类型的对象包装器,对象包装在概念上
有点类似C#中的Box/Unbox。
Date, Array, RegExp: 可以把它们看作是几种内置的扩展数据类型。
首先,Function, Object, Boolean, Number, String, Date, Array, RegExp等都是
JavaScript语言的内置对象,它们都可以看作是函数的派生类型,例如Numberinstanceof
Function为true,Number instanceofObject为true。在这个意义上,可以将它们跟用户
定义的函数等同看待。
其次,它们各自可以代表一种数据类型,由JS引擎用native code或内置的JS代码实现,
是暴露给开发者对这些内置数据类型进行操作的接口。在这个意义上,它们都是一种抽象的
概念,后面隐藏了具体的实现机制。
在每一个提到Number, Function等单词的地方,应该迅速的在思维中将它们实例化为上面
的两种情况之一。
数据类型实现模型描述
Build-in *** data structure: 指JS 内部用于实现***类型的数据结构,这些结构我们基
本上无法直接操作。
Build-in *** object: 指JS 内置的Number, String, Boolean等这些对象,这是JS将内
部实现的数据类型暴露给开发者使用的接口。
Build-in *** constructor: 指JS 内置的一些构造器,用来构造相应类型的对象实例。它
们被包装成函数对象暴露出来,例如我们可以使用下面的方法访问到这些函数对象:
//Passed in FF2.0, IE7, Opera9.25, Safari3.0.4
//access the build-in number constructor
var number new Number(123);
var numConstructor1 number.constructor; //or
var numConstructor2 new Object(123).constructor;
//both numConstructor1 and numConstructor2 are the build-in Number constructor
numConstructor1 numConstructor2 //result: true
//access the build-in object constructor
var objConstructor1 {}.constructor; //or
var objConstructor2 new Object().constructor;
//both objConstructor1 and objConstructor2 are the build-in Object constructor
objConstructor1 objCons
您可能关注的文档
- IDL入门教程_04_图形显示技术.pdf
- IEC60884插头试验标准中文版.pdf
- IEC62109-1(中).pdf
- IEC62351变电站二次系统安全加固方案.pdf
- IEC62776灯具标准简介.pdf
- IEEE_802.11无线协议中文.pdf
- IDL入门教程_07a_图形硬拷贝输出_上.pdf
- IE手法培训教材.pdf
- ICT未来,ICT已来.pdf
- iData_城镇基本医疗保险中逆向选择的检验_臧文斌.pdf
- 叙事教学在语文课堂中的创新应用教学研究课题报告.docx
- 2024-2025学年初中音乐八年级上册人音版(2024)教学设计合集.docx
- 2024-2025学年初中信息技术(信息科技)第一册河北大学版(第3版)教学设计合集.docx
- 2024-2025学年高中英语选修7、8人教版教学设计合集.docx
- 2024-2025学年中职中职专业课办公软件应用71 电子与信息大类教学设计合集.docx
- 2024-2025学年小学美术二年级下册赣美版(2024)教学设计合集.docx
- 2024-2025学年初中音乐九年级上册苏少版(2024)教学设计合集.docx
- 2024-2025学年高中物理必修 第三册鲁科版(2019)教学设计合集.docx
- 2024-2025学年高中语文必修四北京版教学设计合集.docx
- 2024-2025学年中职中职专业课汽车商务管理73 财经商贸大类教学设计合集.docx
文档评论(0)