博客
关于我
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 优化 or
查看>>
mysql 优化器 key_mysql – 选择*和查询优化器
查看>>
MySQL 优化:Explain 执行计划详解
查看>>
Mysql 会导致锁表的语法
查看>>
mysql 使用sql文件恢复数据库
查看>>
mysql 修改默认字符集为utf8
查看>>
Mysql 共享锁
查看>>
MySQL 内核深度优化
查看>>
mysql 内连接、自然连接、外连接的区别
查看>>
mysql 写入慢优化
查看>>
mysql 分组统计SQL语句
查看>>
Mysql 分页
查看>>
Mysql 分页语句 Limit原理
查看>>
MySql 创建函数 Error Code : 1418
查看>>
MySQL 创建新用户及授予权限的完整流程
查看>>
mysql 创建表,不能包含关键字values 以及 表id自增问题
查看>>
mysql 删除日志文件详解
查看>>
mysql 判断表字段是否存在,然后修改
查看>>