const model=function(state,element) {
element.value = state.value
Object.defineProperty(state,'value',{
get(){
return element.value
},
set(val){
element.value = val
}
})
element.addEventListener('change',function(e){
state.value =element.value
})
}
const input = document.createElement('input')
const state = { value: 'BFE' }
model(state, input)
console.log(input.value)
state.value = 'dev'
console.log(input.value)
input.value = 'BFE.dev'
input.dispatchEvent(new Event('change'))
console.log(state.value)
参考链接
bigfrontend.dev/zh/problem/…