今天分享这个问题,我目前见过的是分为两种情况 ;
第一种:是没有在data中定义这个变量或者属性。
第二种:就是在开发项目的时候,通常都会将一些变量封装到数组中在data中定义方便我们使用,
但是,有些时候需要在前端先处理数据再传后端的时候就会出现这样的情况,因为有时候我们在处理数据的时候需要进行判断这个数组里面的变量是不是为空串或者未定义,之后满足条件之后达到我们想要的效果,但是在重置表单(data中定义的数组)的时候我们也习惯用 this . xxx = { } 来清空我们的表单,但是之后就会出现当前这个问题了。
那么是为什么?
因为我们在之前的时候进行判断使用到了表单里面定义的变量,但是清空表单的时候这些变量就不存在了,当再次获取数据的时候重新进行判断的话就检测不到这些数组里面的属性,需要我们在之前判断的语句中加入
this . xxx . hasOwnProperty ( " 属性名 " )
来判断当前表单是否包含该属性,如果包含就为true,否则为false,如果不判断,在之前清空表单的时候它会默认表单是空的所以会检测不到该判断的属性是否存在,这样去判断之后为了检查某个对象是否拥有不在原型链上的自定义属性,就有必要用到 hasOwnProperty 方法,任何一个对象都具有该方法,它继承自 Object.prototype。