/**
* Created by zhangmike on 16/10/18.
*/
export default function initState(GMP) {
/**
* Setup the scope of an instance, which contains:
* - observed data
*/
GMP._assignPros({
_initState() {
this._initData();
},
_initData() {
this._data = this.$options.data || {};
var keys = Object.keys(this._data);
var that = this;
for (var i = 0, l = keys.length; i < l; i++) {
var key = keys[i],
val = this._data[keys[i]];
var property = Object.getOwnPropertyDescriptor(this._data, key);
if (property && property.configurable === false) {
continue;
}
(function(k, v) {
Object.defineProperty(that._data, k, {
enumerable: true,
configurable: true,
get: function reactiveGetter () {
return v;
},
set: function reactiveSetter (newVal) {
var value = v;
if (newVal === value) {
return;
}
v = newVal;
}
});
})(key, val);
}
}
});
}