通过Object.defineProperty对数据的 获取 和 修改 进行劫持。

    1. <body>
    2. <input type="text" id="userName"/>
    3. <h2 id="getName"></h2>
    4. </body>
    5. <script>
    6. let obj = {};
    7. Object.defineProperty(obj,'name',{
    8. get:function(){
    9. console.log('name获取');
    10. return obj.name;
    11. },
    12. set:function(val){
    13. console.log('name改变');
    14. document.querySelector('#getName').innerText = val
    15. }
    16. })
    17. //添加一个input事件
    18. document.querySelector('#userName').addEventListener('input',function(){
    19. obj.name = event.target.value;
    20. })
    21. </script>