mirror of
https://github.com/ruanyf/es6tutorial.git
synced 2025-05-24 18:32:22 +00:00
修改object/observe
This commit is contained in:
parent
515ba70a99
commit
8f9b3bd02e
@ -1,6 +1,6 @@
|
||||
# ECMAScript 6简介
|
||||
|
||||
ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准,正处在快速开发之中,大部分已经完成了,预计将在2014年底正式发布。Mozilla将在这个标准的基础上,推出JavaScript 2.0。
|
||||
ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准,正处在快速开发之中,大部分已经完成了,预计将在2015年6月正式发布。Mozilla公司将在这个标准的基础上,推出JavaScript 2.0。
|
||||
|
||||
ES6的目标,是使得JavaScript语言可以用来编写大型的复杂的应用程序,成为企业级开发语言。
|
||||
|
||||
|
@ -387,7 +387,7 @@ person.age = 300 // 报错
|
||||
|
||||
## Object.observe(),Object.unobserve()
|
||||
|
||||
Object.observe方法用来监听对象的变化。一旦监听对象发生变化,就会触发回调函数。
|
||||
Object.observe方法用来监听对象(以及数组)的变化。一旦监听对象发生变化,就会触发回调函数。
|
||||
|
||||
```javascript
|
||||
|
||||
@ -408,7 +408,27 @@ Object.observe(o, observer);
|
||||
|
||||
上面代码中,Object.observe方法监听一个空对象o,一旦o发生变化(比如新增或删除一个属性),就会触发回调函数。
|
||||
|
||||
Object.observe方法指定的回调函数,接受一个数组(changes)作为参数。该数组的成员与对象的变化一一对应,也就是说,对象发生多少个变化,该数组就有多少个成员。每个成员是一个对象(change),它的name属性表示发生变化源对象的属性名,oldValue属性表示发生变化前的值,object属性指向变动后的源对象,type属性表示变化的种类,目前共支持六种变化:add、update、delete、setPrototype、reconfigure(属性的attributes对象发生变化)、preventExtensions(当一个对象变得不可扩展时,也就不必再观察了)。
|
||||
Object.observe方法指定的回调函数,接受一个数组(changes)作为参数。该数组的成员与对象的变化一一对应,也就是说,对象发生多少个变化,该数组就有多少个成员。每个成员是一个对象(change),它的name属性表示发生变化源对象的属性名,oldValue属性表示发生变化前的值,object属性指向变动后的源对象,type属性表示变化的种类。基本上,change对象是下面的样子。
|
||||
|
||||
```javascript
|
||||
|
||||
var change = {
|
||||
object: {...},
|
||||
type: 'update',
|
||||
name: 'p2',
|
||||
oldValue: 'Property 2'
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
Object.observe方法目前共支持监听六种变化。
|
||||
|
||||
- add:添加属性
|
||||
- update:属性值的变化
|
||||
- delete:删除属性
|
||||
- setPrototype:设置原型
|
||||
- reconfigure:属性的attributes对象发生变化
|
||||
- preventExtensions:对象被禁止扩展(当一个对象变得不可扩展时,也就不必再监听了)
|
||||
|
||||
Object.observe方法还可以接受第三个参数,用来指定监听的事件种类。
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user