observe
a observe for all type variables
本项目基于 dntzhang/oba
改造而来,原项目地址:https://github.com/dntzhang/oba
对象字面量
var obj = { a: 1 }
observe(obj, function(name, value, old) {
console.log(name + '__' + value + '__' + old)
})
obj.a = 2
数组
var arr = [1, 2, 3]
observe(arr, function(name, value, old) {
console.log(name + '__' + value + '__' + old)
})
arr.push(4)
arr[3] = 5
复杂对象
var complexObj = { a: 1, b: 2, c: [{ d: [4] }] }
observe(complexObj, function(name, value, old, path) {
console.log(name + '__' + value + '__' + old)
console.log(path)
})
complexObj.c[0].d = 100
普通对象
var User = function(name, age) {
this.name = name
this.age = age
observe(this, ['name'], function(name, value, oldValue) {
console.log(name + '__' + value + '__' + oldValue)
})
}
var user = new User('lisi', 25)
user.name = 'wangwu'
user.age = 20
Variables
Let methods
methods: Array<string> = ['concat','copyWithin','entries','every','fill','filter','find','findIndex','forEach','includes','indexOf','join','keys','lastIndexOf','map','pop','push','reduce','reduceRight','reverse','shift','slice','some','sort','splice','toLocaleString','toString','unshift','values','size']
Let triggerStr
triggerStr: string = ['concat','copyWithin','fill','pop','push','reverse','shift','sort','splice','unshift','size'].join(',')
Functions
_getRootName
- _getRootName(prop: string, path: string): string
-
Parameters
-
prop: string
-
path: string
Returns string
isArray
- isArray(obj: any): boolean
-
Parameters
Returns boolean
isFunction
- isFunction(o: any): boolean
-
Parameters
Returns boolean
isInArray
- isInArray(arr: Array<any>, item: any): boolean
-
Parameters
-
arr: Array<any>
-
item: any
Returns boolean
isString
- isString(o: any): boolean
-
Parameters
Returns boolean
observe
- observe(target: any, arr?: string | Array<string>, callback?: Function): void
-
Parameters
-
target: any
-
Optional arr: string | Array<string>
-
Optional callback: Function
Returns void
获取该属性的上一级路径,默认是"#"