博客
关于我
MVVM源码注释
阅读量:376 次
发布时间:2019-03-05

本文共 1179 字,大约阅读时间需要 3 分钟。

 MVVM代码注释如下:

function MVVM(options) {    //给实例新增一个$options属性,.并且把传递过来的配置进行暂存    this.$options = options;    //在实例上新增一个_data 保存传递过来的data数据    var data = this._data = this.$options.data;    //保存this 为了之后使用this的时候保证this指向的正确性    var me = this;    //通过Object.keys取出data中每一项数据的属性名,然后遍历调用_proxy方法    Object.keys(data).forEach(function(key) {        // 数据代理        me._proxy(key);    });    //为data所有数据进行劫持 结合订阅发布模式    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;//暂存this 保证this的指向正确  这里的this还是实例vm        //通过defineProperty方法在实例(vm)上新增所有与data中属性所对应属性,并且为该属性添加get和set方法        Object.defineProperty(me, key, {//vm.name            configurable: false,            enumerable: true,            get: function proxyGetter() {                //实现了vm代理data中数据的读操作                return me._data[key];            },            set: function proxySetter(newVal) {//vm.name = "bb"                //实现了vm代理data中数据的写操作                me._data[key] = newVal;            }        });    }};

 

转载地址:http://bbhg.baihongyu.com/

你可能感兴趣的文章
MySQL优化配置详解
查看>>
mysql会员求积分_MySql-统计所有会员的最高前10次的积分和
查看>>
MySQL保姆级教程(SQL语法基础篇)从小白到高手的进阶指南,收藏这一篇就够了
查看>>
MySQL修改密码报错ERROR 1396 (HY000): Operation ALTER USER failed for ‘root‘@‘localhost‘
查看>>
Mysql全局优化参数
查看>>
MySQL全文索引实现简单版搜索引擎
查看>>
MySQL全面瓦解:安装部署与准备
查看>>
MySQL内存表使用技巧
查看>>
MySQL再叙(体系结构、存储引擎、索引、SQL执行过程)
查看>>
MySQL函数
查看>>
mysql函数汇总之数学函数
查看>>
mysql函数汇总之日期和时间函数
查看>>
mysql函数汇总之条件判断函数
查看>>
mysql函数汇总之系统信息函数
查看>>
MySQL函数简介
查看>>
mysql函数遍历json数组
查看>>
MySQL函数(转发)
查看>>
mysql分区表
查看>>
MySQL分层架构与运行机制详解
查看>>
mysql分库分表中间件简书_MySQL分库分表
查看>>