JavaScript探秘:对象Object
2011-05-06 00:00
991 查看
ECMAScript是一门高度抽象的面向对象(object-oriented)语言,用以处理Objects对象。当然,也有基本类型,但是必要时,也需要转换成object对象来用。
An object is a collection of properties and has a single prototype object. The prototype may be either an object or the null value.
Object是一个属性的集合,并且都拥有一个单独的原型对象[prototype object]. 这个原型对象[prototype object]可以是一个object或者null值。
让我们来举一个基本Object的例子,首先我们要清楚,一个Object的prototype是一个内部的[[prototype]]属性的引用。
不过一般来说,我们会使用__<内部属性名>__ 下划线来代替双括号,例如__proto__(这是某些脚本引擎比如SpiderMonkey的对于原型概念的具体实现,尽管并非标准)。
上述代码foo对象有两个显式的属性[explicit own properties]和一个自带隐式的 __proto__ 属性[implicit __proto__ property],指向foo的原型。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201505/0f532f265d5cca519e91d92e3139570b.png)
一个含有原型的基本对象
为什么需要原型呢,让我们考虑 原型链 的概念来回答这个问题。
我们应该如何去了解JavaScript引擎的工作原理
JavaScript探秘:编写可维护的代码的重要性
JavaScript探秘:谨慎使用全局变量
JavaScript探秘:var预解析与副作用
JavaScript探秘:for循环(for Loops)
JavaScript探秘:for-in循环(for-in Loops)
JavaScript探秘:Prototypes强大过头了
JavaScript探秘:eval()是“魔鬼”
JavaScript探秘:用parseInt()进行数值转换
JavaScript探秘:基本编码规范
JavaScript探秘:函数声明与函数表达式
JavaScript探秘:命名函数表达式
JavaScript探秘:调试器中的函数名
JavaScript探秘:JScript的Bug
JavaScript探秘:JScript的内存管理
JavaScript探秘:SpiderMonkey的怪癖
JavaScript探秘:命名函数表达式替代方案
JavaScript探秘:对象Object
JavaScript探秘:原型链 Prototype chain
JavaScript探秘:构造函数 Constructor
JavaScript探秘:可执行的上下文堆栈
执行上下文其一:变量对象与活动对象
执行上下文其二:作用域链 Scope Chains
执行上下文其三:闭包 Closures
执行上下文其四:This指针
JavaScript探秘:强大的原型和原型链
JavaScript函数其一:函数声明
JavaScript函数其二:函数表达式
JavaScript函数其三:分组中的函数表达式
JavaScript函数其四:函数构造器
JavaScript变量对象其一:VO的声明
JavaScript变量对象其二:VO在不同的执行上下文中
JavaScript变量对象其三:执行上下文的两个阶段
JavaScript变量对象其四:关于变量
JavaScript变量对象其五:__parent__ 属性
JavaScript作用域链其一:作用域链定义
JavaScript作用域链其二:函数的生命周期
JavaScript作用域链其三:作用域链特征
JavaScript闭包其一:闭包概论
JavaScript闭包其二:闭包的实现
JavaScript闭包其三:闭包的用法
An object is a collection of properties and has a single prototype object. The prototype may be either an object or the null value.
Object是一个属性的集合,并且都拥有一个单独的原型对象[prototype object]. 这个原型对象[prototype object]可以是一个object或者null值。
让我们来举一个基本Object的例子,首先我们要清楚,一个Object的prototype是一个内部的[[prototype]]属性的引用。
不过一般来说,我们会使用__<内部属性名>__ 下划线来代替双括号,例如__proto__(这是某些脚本引擎比如SpiderMonkey的对于原型概念的具体实现,尽管并非标准)。
var foo = { x: 10, y: 20 };
上述代码foo对象有两个显式的属性[explicit own properties]和一个自带隐式的 __proto__ 属性[implicit __proto__ property],指向foo的原型。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201505/0f532f265d5cca519e91d92e3139570b.png)
一个含有原型的基本对象
为什么需要原型呢,让我们考虑 原型链 的概念来回答这个问题。
延伸阅读
此文章所在专题列表如下:我们应该如何去了解JavaScript引擎的工作原理
JavaScript探秘:编写可维护的代码的重要性
JavaScript探秘:谨慎使用全局变量
JavaScript探秘:var预解析与副作用
JavaScript探秘:for循环(for Loops)
JavaScript探秘:for-in循环(for-in Loops)
JavaScript探秘:Prototypes强大过头了
JavaScript探秘:eval()是“魔鬼”
JavaScript探秘:用parseInt()进行数值转换
JavaScript探秘:基本编码规范
JavaScript探秘:函数声明与函数表达式
JavaScript探秘:命名函数表达式
JavaScript探秘:调试器中的函数名
JavaScript探秘:JScript的Bug
JavaScript探秘:JScript的内存管理
JavaScript探秘:SpiderMonkey的怪癖
JavaScript探秘:命名函数表达式替代方案
JavaScript探秘:对象Object
JavaScript探秘:原型链 Prototype chain
JavaScript探秘:构造函数 Constructor
JavaScript探秘:可执行的上下文堆栈
执行上下文其一:变量对象与活动对象
执行上下文其二:作用域链 Scope Chains
执行上下文其三:闭包 Closures
执行上下文其四:This指针
JavaScript探秘:强大的原型和原型链
JavaScript函数其一:函数声明
JavaScript函数其二:函数表达式
JavaScript函数其三:分组中的函数表达式
JavaScript函数其四:函数构造器
JavaScript变量对象其一:VO的声明
JavaScript变量对象其二:VO在不同的执行上下文中
JavaScript变量对象其三:执行上下文的两个阶段
JavaScript变量对象其四:关于变量
JavaScript变量对象其五:__parent__ 属性
JavaScript作用域链其一:作用域链定义
JavaScript作用域链其二:函数的生命周期
JavaScript作用域链其三:作用域链特征
JavaScript闭包其一:闭包概论
JavaScript闭包其二:闭包的实现
JavaScript闭包其三:闭包的用法
相关文章推荐
- Javascript 面向对象 对象(Object)
- 浅析JavaScript中的对象类型Object
- javascript对象---5 Object全局内置函数
- JavaScript对象系统深入剖析3-创建对象Object.Create
- JavaScript之基础-14 JavaScript Object对象(概述、创建对象、属性、方法)
- Javascript创建自定义对象 创建Object实例添加属性和方法
- javascript一种新的对象创建方式-Object.create()
- es6 javascript对象方法Object.assign()
- JavaScript对象(Object)
- 一个实用的 Javascript XML to JSON Object 对象的转换 (JQuery)
- javascript有个特殊的对象ActiveXObject,通过它可以访问windows的本地文件系统和应用程序
- javascript的ActiveXObject造成“Automation服务器不能创建对象”
- javascript 遍历一个对象object 有时会用到
- javascript的window.ActiveXObject对象,区别浏览器的方法
- Ajaxpro中如何从JavaScriptObject转化到序列化对象
- es6 javascript对象方法Object.assign()
- 从零开始学_JavaScript_系列(39)——对象的扩展(2)Object对象的扩展方法
- Javascript研究: 遍历对象的方式Object.getOwnPropertyNames vs Object.keys vs for ...in
- 解析JavaScript面向对象概念中的Object类型与作用域
- javascript引用类型之对象Object