2022.05.27

题目五:

class Observer {
  constructor(data) {
    this.defineReactive(data);
  }

  defineReactive(data) {
    Object.keys(value).forEach((key) => {
      reactive(value, key, value[key]);
    });
  }
  reactive(obj, key, val) {
    // 补充
    Object.defineProperty(obj, key, {
      enumerable: true,
      configurable: true,
      get: function () {
        console.log(`get key: ${key} val: ${val}`);
        return val;
      },
      set: function () {
        console.log(`set key: ${key} val: ${newVal}`);
        // 还记得我们上面讨论的闭包么
        // 此处将新的值赋给val,保存在内存中,从而达到赋值的效果
        val = newVal;
      },
    });
  }
}

const data = {
  info: {
    name: "lily",
  },
};

new Observer(data);

/**

  • 执行下面这个代码需要打印以下日志

  • get info

  • set name = lucy

*/

data.info.name = 'lucy'

/**

  • 执行下面这个代码需要打印以下日志

  • set info = 2

*/

data.info = 2

题目 2:


// Foo2 指向 Foo // 3 // Foo2 = Object.create(Foo);

题目三: // 改造这个方法,使其支持 timeout

题目 4:

=>

VNode ?

Vue2 响应式原理?

题目一:

腾讯

性能优化?

静态节点替换,按需

可视区域懒加载

富文本性能优化?

插入腾讯文档

魅族

微前端?

子应用资源

响应头

Access-Control-Allow-Origin: * // 用来做什么?

两个算法:一个二叉树的 DFS,一个匹配小中大括号的。给出几十万列表数据的优化方案。hash 与 history 模式各自优劣与原理。

最后更新于

这有帮助吗?