<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>mvvm</title>
<input id="name" type="text" value="demo" onchange="nameChange(this)">
</head>
<body>
<script>
//set http://www.cnblogs.com/qiyebao/p/4028129.html
//https://segmentfault.com/a/1190000006599500
{
let ele = $(`name`);
let obj = {};
//operate outside attribute
Object.defineProperty(obj,'bind',{
_bind:ele.value,
set:function (val) {
this._bind=val;
ele.value=val;
},
get:function () {
return this._bind;
}
})
function nameChange(e) {
obj.bind=e.value;
console.log(obj.bind);
}
function $(id) {
if(!id)
throw `attribute should not be empty`;
return document.getElementById(`${id}`);
}
window.obj=obj;
}
</script>
</body>
</html>
The principle of Vue mvvm :https://segmentfault.com/a/1190000006599500