Vue 双向绑定

语法:

Object.defineProperty(obj, prop, descriptor) 数据劫持

obj: 在此上定义对象

prop: 定义或修改的属性名称

descriptor: 被定义或修改的属性描述符

返回值 -> 被传递给函数的对象 (可以重写 get set 方法)

var Book = {};
var name = '';

Object.defineProperty(Book, 'name', {
    set: function(value) {
        name = value;
    },
    get: function() {
        return '《' + name + '》'
    } 
});

Book.name = '算法与数据结构'

  get 在获得 name 属性的时候被调用 set 属性在设置 name 属性的时候被触发          Vue 通过这种方法进行数据劫持

订阅者-发布者模式 :通常用于消息队列中 一般有两种形式来实现消息队列 一是使用生产者和消费者来实现 二是使用订阅者-发布者模式来实现 其中订阅者和发布者实现消息队列的方式 就会用订阅者模式

Vue 双向数据绑定是数据劫持发布者-订阅者模式实现的

原文地址:https://www.cnblogs.com/zlrrrr/p/11775983.html