1234567891011121314151617181920212223242526272829303132333435 |
- function MVVM(options) {
- this.$options = options;
- var data = this._data = this.$options.data;
- var me = this;
- // 数据代理
- // 实现 vm.xxx -> vm._data.xxx
- Object.keys(data).forEach(function(key) {
- me._proxy(key);
- });
- observe(data, this);
- this.$compile = new Compile(options.el || document.body, this)
- }
- MVVM.prototype = {
- $watch: function(key, cb, options) {
- new Watcher(this, key, cb);
- },
- _proxy: function(key) {
- var me = this;
- Object.defineProperty(me, key, {
- configurable: true,
- enumerable: true,
- get: function proxyGetter() {
- return me._data[key];
- },
- set: function proxySetter(newVal) {
- me._data[key] = newVal;
- }
- });
- }
- };
|