1
0
mirror of https://github.com/ruanyf/es6tutorial.git synced 2025-05-24 18:32:22 +00:00

修改object/observe

This commit is contained in:
ruanyf 2014-09-22 09:39:04 +08:00
parent 515ba70a99
commit 8f9b3bd02e
2 changed files with 23 additions and 3 deletions

View File

@ -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语言可以用来编写大型的复杂的应用程序成为企业级开发语言。

View File

@ -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方法还可以接受第三个参数用来指定监听的事件种类。