【发布时间】:2015-01-26 17:29:15
【问题描述】:
阅读本文后:A fresh look at javascript mixins 我想将一些常见的淘汰赛计算函数移动到一个 mixin 中,并将其混合到每个需要该功能的视图模型中。
首先是mixin函数
var asActor = function() {
this.nrOfEmployees = ko.computed(function () {
if (this.employees())
return this.employees().length;
return 0;
}, this).extend({ throttle: 20 });
this.nrOfAddresses = ko.computed(function () {
if (this.addresses())
return this.addresses().length;
return 0;
}, this).extend({ throttle: 20 })
};
然后调用mixin到目标对象原型中
asActor.call(SenderActor.prototype);
asActor.call(ReceiverActor.prototype);
我的问题似乎是 this (或 self 在视图模型中设置为 this)指向 windows 对象而不是视图模型。有任何想法吗? Javascript mixins 对我来说是新的,所以我可能在这里遗漏了一些明显的东西。
【问题讨论】:
标签: javascript knockout.js mixins