官方文档这样解释:
当你把一个普通的 JavaScript 对象传给 Vue 实例的 data 选项,Vue 将遍历此对象所有的属性,并使用 Object.defineProperty 把这些属性全部转为 getter/setter。Object.defineProperty 是 ES5 中一个无法 shim 的特性,这也就是为什么 Vue 不支持 IE8 以及更低版本浏览器的原因。
何为shim特性:
指把一个库引入另一个旧的浏览器,然后用旧的API,实现一些新的API功能。
Object.defineProperty在IE8下只能对DOM对象使用, 如果对原生对象使用Object.defineProtry()会报错