普通的对象,仍然使用 typeof 获取,经过Vue包装的对象,则使用 prototype 进行获取。
一个新建的 js 对象,如果只在 js 脚本内部调用,仍然使用 typeof 获取,
如果通过 props 传递给Vue组件,或者使用 v-model 绑定等等操作,
这个时候Vue要侦听值的变化,对这个 js 对象进行封装,这时候,就需要通过 prototype 进行获取。
在进行组件封装过程中,还是推荐两种方式都用,确保任何情况下都不会出现问题。
if (typeof val === 'number' || Number.prototype.isPrototypeOf(val)) { // 正常系统不应该这么做,这个系统的数据字典设计的有问题,只支持字符串,所有的数值转换为字符串 this.$set(input, 'value', val.toString()); } else { this.$set(input, 'value', val); }