国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

javascript觀察者模式實現自動刷新效果

2024-05-06 15:11:48
字體:
來源:轉載
供稿:網友

本文實例為大家分享了js觀察者模式實現自動刷新的具體代碼,供大家參考,具體內容如下

// 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) ) {      target[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(function () {  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.firstName = 'test';person.lastName = 'MyLast';console.log(person.lastName);person.age = 20;

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持錯新站長站。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 宁安市| 琼结县| 古田县| 阿拉善右旗| 子长县| 绩溪县| 廉江市| 台江县| 长阳| 内丘县| 肃北| 庆阳市| 攀枝花市| 布尔津县| 三河市| 富阳市| 福海县| 龙胜| 通许县| 沂源县| 金川县| 灌南县| 曲水县| 邢台县| 东乌| 富川| 都匀市| 襄樊市| 鸡西市| 克东县| 内丘县| 夹江县| 阿城市| 嘉黎县| 高平市| 邵东县| 景谷| 香格里拉县| 九寨沟县| 湘阴县| 如东县|