这个方法是在vue源码defineReactive方法定义对象的响应式属性的set中有调用,用于比较set时新传入的newValue和原来的属性的value,是否发生变化。如果返回false,那就结束set后续的操作。这个方法源码如下:
export function hasChanged(x: unknown, y: unknown): boolean {
if (x === y) {
return x === 0 && 1 / x !== 1 / (y as number)
} else {
return x === x || y === y
}
}
大家可以看看这个方法,为什他要这么判断,可以在评论区留言发表自己的见解哦