vue 重写数组的一些疑问?

transform_
  • 294

image.png

这句话的意义是什么。
为什么要重新创建原型

回复
阅读 912
5 个回答

避免全局污染Array数组。只负责更改Vue里的数组方法。

let a = {a:1};
let b = Object.create(a);
// 相当于 b.__proto__ = a; 但是a 本身不会变。
b.a = 3;
console.log(a,b);  // =>  {a:1},{a:3}

只影响 Vue 里的数组,不影响全局的啊,防止原型链污染。

  • 避免污染全局Array
  • 重新定义从而实现数组数据的监听

这个叫做劫持。

perry
  • 1
新手上路,请多包涵

这和a=b=1一个道理,
b=2,导致a也等于2了,所以要做隔离,

b = Object.create(a);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏