在 WinJS 中有三个绑定相关的 mixin:
- WinJS.Binding.observableMixin
- WinJS.Binding.dynamicObservableMixin
- WinJS.Binding.mixin
WinJS.Binding.mixin 和 WinJS.Binding.dynamicObservableMixin 都定义了相同的混合方法。它们定义之间的唯一区别是 WinJS.Binding.mixin 被定义为 WinJS.Binding 命名空间上的不可枚举属性,而 WinJS.Binding.dynamicObservableMixin 被定义为可枚举属性:
WinJS.Namespace.define("WinJS.Binding", {
mixin: { value: dynamicObservableMixin, enumerable: false, writable: true, configurable: true },
dynamicObservableMixin: { value: dynamicObservableMixin, enumerable: true, writable: true, configurable: true },
});
我没有看到这两个 mixin 之间有任何真正的区别——我没有看到这个属性上的可枚举标志的差异的相关性。关于两者的哪个 mixin 是否有任何语义或其他差异?