博客
关于我
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优化系列-优化版造数据(存储过程+函数+修改存储引擎)-2
查看>>
MySql优化系列-进阶版造数据(load data statment)-3
查看>>
MySql优化系列-造数据(存储过程+函数)-1
查看>>
MySQL优化配置详解
查看>>
Mysql优化高级篇(全)
查看>>
mysql会员求积分_MySql-统计所有会员的最高前10次的积分和
查看>>
mysql会对联合索性排序优化_MySQL索引优化实战
查看>>
MySQL作为服务端的配置过程与实际案例
查看>>
Mysql使用命令行备份数据
查看>>
MySQL保姆级教程(SQL语法基础篇)从小白到高手的进阶指南,收藏这一篇就够了
查看>>
MySQL修改root密码的各种方法
查看>>
MySQL修改root密码的多种方法
查看>>
mysql修改一列属性
查看>>
MySQL修改密码报错ERROR 1396 (HY000): Operation ALTER USER failed for ‘root‘@‘localhost‘
查看>>
Mysql全局优化参数
查看>>
MySQL全文索引实现简单版搜索引擎
查看>>
MySQL全面瓦解:安装部署与准备
查看>>
mysql共享锁与排他锁
查看>>
MySQL内存表使用技巧
查看>>
MySQL再叙(体系结构、存储引擎、索引、SQL执行过程)
查看>>