美文网首页
前端随笔

前端随笔

作者: 江边一蓑烟 | 来源:发表于2017-10-22 01:03 被阅读0次
    1. 响应式编程
    • 响应式编程【Reactive Programming】
      • 依赖事件? 回调?
      • 在响应式编程里,按时间排列的事件,被称为“流”,stream。响应式中的事件序列类似于js的数组,它里面的事件流就是时间的序列
      • 响应式编程依赖于事件,在js里事件是指异步
      • 响应式编程,就是异步的数据流的开发
      • 鼠标hover是流stream
      • 监听数据、监听error、监听win事件。监听也叫“订阅”,监听这些事件的函数叫“观察者”,流stream即为“主体”。订阅+观察者即观察者模式。
      • 响应式编程,一个数据的变化,它的影响可能是呈现网状扩散
    • 特点
      • 速度响应快,低延迟
      • 健壮性弹性,有故障也能尽量响应
      • 资源弹性,访问量大自动加资源,少了自动减
      • 有消息自动传递
    • 响应式的思想
      • 实际是观察者模式+(stream与事件源的通信控制)
      • 其具体实现有一个叫ReactiveX是一个基于一系列可观察的异步和基础事件编程组成的一个库
    1. 观察者模式
      大体满足
    • 松耦合的代码;
    • 一对多的关系
    • 主体状态变化时,所有依赖被通知
    • 主体和观察者互不知晓

    20171021

    1.题目要求

    使用 Prototype 来创建一个 Person 类,需要完成以下要求:

    • 在构造函数 Person 的 prototype(原型) 上增加下面的共享属性:
    • 在原型上增加属性 name 值为 'Jonny'
    • 在原型上增加属性 friends 值为 ['Cover', 'Kevin']
    • 在构造函数 Person 的原型上增加共享方法 sayHello
      如下所示:
    var person1 = new Person('Sugar');
    var person2 = new Person('Cream');
    console.log(person1.friends);  // ['Cover', 'Kevin']
    console.log(person2.friends);  // ['Cover', 'Kevin']
    console.log(person1.sayHello === person2.sayHello); // true
    
    answer
    • 通过构造函数生成实例对象时,会自动为实例对象分配原型对象。每一个构造函数都有一个 prototype 属性,这个属性就是实例对象的原型对象。
    • 原型对象上的所有属性和方法,都能被派生对象共享。
    • 因此本道题目,考察如何使用 prototype 来设置共享的方法,避免所有实例对象都设置相同的属性和方法导致对系统资源的浪费。
      具体参考代码如下:
    function Person(name){
    }
    // 设置原型
    Person.prototype = {
      constructor: Person,
      name: 'Jonny',
      friends: ['Cover', 'Kevin'],
      sayHello: function() {
        //...
      }
    };
    
    • 需注意的是在上面的代码中,我们将 Person.prototype 设置为一个新创建的对象。会导致 Person.prototype 对象原来的 constructor 属性不再指向 Person, 这里可以像上面那样,特意的把 constructor 设置为 Person 。

    2. Javascript继承机制的设计思想

    相关文章

      网友评论

          本文标题:前端随笔

          本文链接:https://www.haomeiwen.com/subject/aiawuxtx.html