How to achieve automatic refresh effect in javascript Observer Mode
Most people do not understand the knowledge points of this article "javascript Observer Mode how to achieve automatic refresh effect", so the editor summarizes the following content, detailed content, clear steps, and has a certain reference value. I hope you can get something after reading this article. Let's take a look at this "javascript Observer Mode how to achieve automatic refresh effect" article.
The specific code is as follows
/ / author wangbinandi@gmail.comconst observable = obj = > {const observers = Symbol (); const set = function (target, key, value) {const result = Reflect.set (target, key, value); / / console.log ("set key:" + key); if (target [observers] .has (key)) {targets [observers] .get (key) .forEach (observer = > observer ());} return result } const get = function (target, key) {const result = Reflect.get (target, key); / / console.log ("get key:" + key); if (arguments.callee.caller) {if (! target [observers] .has (key)) {target [observers] .set (key, new Set ())} target [observers] .get (key) .add (arguments.callee.caller);} return result } obj [observers] = new Map (); / / string = > Set () return new Proxy (obj, {set, get});}; const autorun = fn = > fn (); var person = observable ({firstName: 'Matt', lastName:' Ruby', age: 18, weight: 50}); autorun () {console.log ('autorun.getAge:' + person.firstName +''+ person.age);}) Autorun (function () {console.log ('autorun.getName:' + person.firstName +''+ person.lastName);}); person.age = 19 person.weight = 55 person.lastName person.firstName = 'test';person.lastName =' MyLast';console.log (person.lastName); person.age = 20 The above is the content of this article on "how to achieve automatic refresh effect in javascript Observer Mode". I believe we all have some understanding. I hope the content shared by the editor will be helpful to you. If you want to know more related knowledge, please pay attention to the industry information channel.