从 Knockout v2.1.0 调试源代码:
ko.observable['fn'] = {
"equalityComparer": function valuesArePrimitiveAndEqual(a, b) {
var oldValueIsPrimitive = (a === null) || (typeof(a) in primitiveTypes);
return oldValueIsPrimitive ? (a === b) : false;
}
};
这对我来说似乎不直观,但史蒂夫·桑德森(Steve Sanderson)不遗余力地定义这一点肯定是有原因的。为什么会这样?它似乎不必要地触发了更改通知。