|
|
|
|
@ -9,7 +9,11 @@ const watch = (target, callback)=>{
|
|
|
|
|
{
|
|
|
|
|
set: (target, prop, newValue) => {
|
|
|
|
|
target[prop] = newValue
|
|
|
|
|
if(Array.isArray(target) && prop === 'length'){
|
|
|
|
|
return true
|
|
|
|
|
}
|
|
|
|
|
callback()
|
|
|
|
|
return true
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
@ -20,13 +24,16 @@ const state = watch(
|
|
|
|
|
name: 'matt',
|
|
|
|
|
friend: {
|
|
|
|
|
name: 'bob'
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
stuff: ['bag', 123, true]
|
|
|
|
|
},
|
|
|
|
|
() => {
|
|
|
|
|
console.log(state);
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
//state.name = 'Matthew'
|
|
|
|
|
state.friend.name = 'Bilbo'
|
|
|
|
|
console.log(state);
|
|
|
|
|
state.name = 'Matthew'
|
|
|
|
|
state.friend.name = 'Bilbo'
|
|
|
|
|
state.stuff[0] = 'fun'
|
|
|
|
|
state.stuff.push('weeee')
|
|
|
|
|
|