在小程序中使用全局数据监听

发表于 2019-09-25 09:37:09   |   下载附件   |   字体:
小程序全局监听definePropertyObject.definePropertygetset
// 全局可被监听数据
watchData : {},

// 对监听的属性进行操作,当值发现变更时
watch: function (Name, method) {
    var obj = this.watchData;
    Object.defineProperty(obj, Name, {
        configurable: true, // 描述属性是否配置,以及可否删除
        enumerable: true,   // 描述属性是否会出现在for in 或者 Object.keys()的遍历中
        set: function (value) {
            this['__' + Name] = value;
            method(value);
        },
        get: function () {
            // 可以在这里打印一些东西,然后在其他界面调用getApp().GD.name的时候,这里就会执行。
            return this['__' + Name]
        }
    })
},