z kodu źródłowego debug Knockout V2.1.0:Dlaczego domyślny porównywalnik równości Knockout.js traktuje typy nieprymitywne jako nie równe?
ko.observable['fn'] = {
"equalityComparer": function valuesArePrimitiveAndEqual(a, b) {
var oldValueIsPrimitive = (a === null) || (typeof(a) in primitiveTypes);
return oldValueIsPrimitive ? (a === b) : false;
}
};
Wydaje nieintuicyjne do mnie, ale musi być jakiś powód, Steve Sanderson wyszedł z jego sposobem na określenie tego. Dlaczego tak się stało? Wydaje się niepotrzebnie wywoływać powiadomienia o zmianach.
świetne pytanie! Może po prostu nie rozumiem wystarczająco dużo KO, ale w jaki sposób powyższy kod wyzwala zmianę powiadomień? –