下面的内容是JavaScript 1.8.5的更新记录. 该版本已包含在Firefox 4中.
JavaScript 1.8.5的新特性
新函数
Function | Description |
---|---|
Object.create() |
使用指定的原型对象和属性. bug 492840 |
Object.defineProperty() |
为对象添加给定的描述信息的属性名. |
Object.defineProperties() |
为对象添加多个给定的描述信息的属性名. |
Object.getOwnPropertyDescriptor() |
返回对象的指定属性名的描述信息. bug 505587 |
Object.keys() |
返回由对象的所有可枚举属性组成的数组. bug 307791 |
Object.getOwnPropertyNames() |
返回由对象的所有可枚举和不可枚举属性组成的数组. bug 518663 |
Object.preventExtensions() |
防止对象进行任意的扩展. bug 492849 |
Object.isExtensible() |
判断对象是否可以扩展. bug 492849 |
Object.seal() |
防止其他代码删除对象的属性. bug 492845 |
Object.isSealed() |
判断对象是否是密封(即禁止删除属性)的. bug 492845 |
Object.freeze() |
冻结一个对象: 其他代码不能删除或修改任何属性. bug 492844 |
Object.isFrozen() |
判断对象是否是冻结的. bug 492844 |
Array.isArray() |
判断变量是否是数组. bug 510537 |
Date.prototype.toJSON() |
返回一个Date对象用JSON格式化的字符串. |
Function.prototype.bind() |
创建一个新函数,当这个函数被调用时,函数会使用提供的上下文环境(给定的字符序列) bug 429507 |
ECMAScript5新特性
get
和set
操作现在允许标识为数值或字符串. bug 520696Function.apply()
能接受任意的类数组的对象作为参数列表,而不是只支持真正数组.- 支持严格 模式
Array.toString()
现在允许在非数组上使用,如果允许则会返回调用其join()
方法,否则调用toString()
方法.
其他标准化的工作
删除一些定义getters和setters的非标准化语法; ECMAScript 5 定义的语法没有变化. 这些语法很难懂且很少被使用; 如果这个影响到你, 详细内容请看 这篇博客.
新对象
Object | Description |
---|---|
Proxy |
提供创建对象和函数的代理,以在Javascript中支持元编程. |
JavaScript 1.8.5中功能变化
- ISO 8601 在Date中支持
:
Date 对象的 parse() 方法现在支持简单的ISO 8601 格式化时间字符串. - 全局对象变为只读: 按照ECMAScript 5 标准,
NaN
,Infinity
, 和undefined
全局对象变为只读. obj.__parent__
andobj.__count__
过时. 部分原因如下:: SpiderMonkey change du jour: the special __parent__ property has been removed bug 551529 & bug 552560.JSON.parse()不再支持逗号结尾
.