Javascript 杜兰达尔计算原型法
是否可以在视图模型原型上定义计算属性?据我所知,在声明时无法访问适当的Javascript 杜兰达尔计算原型法,javascript,knockout.js,durandal,Javascript,Knockout.js,Durandal,是否可以在视图模型原型上定义计算属性?据我所知,在声明时无法访问适当的this值 我可以把它放在构造函数中,但是,正如您所知,它将被重新定义为每个实例。因此,最终这只是一个性能问题 My view型号的我的AMD模块: function viewModel(){ // this.someComputed works } viewModel.prototype.someComputed = ko.pureComputed(function(){ }/*, no context yet.
this
值
我可以把它放在构造函数中,但是,正如您所知,它将被重新定义为每个实例。因此,最终这只是一个性能问题
My view型号的我的AMD模块:
function viewModel(){
// this.someComputed works
}
viewModel.prototype.someComputed = ko.pureComputed(function(){
}/*, no context yet..? */);
viewModel.prototype.activate = function(){
// 'this' is an instance of the view model (I presume)
// should I attach it here?
};
return viewModel;
是否可以在视图模型原型上定义计算属性?据我所知,在声明时无法访问适当的this
值
对。所以答案是否定的,你不能在原型方法上使用computed。这与Durandal本身没有任何关系,是吗?@t.J.Crowder我想提一下,因为我可以使用Durandal的
activate
方法,它通过这个公开函数实例。作为一个附带的问题,我想你知道答案:即使我在构造函数中声明了一个函数,现代浏览器不会将它添加到原型中吗?不,它们不会(也不能)。但它们所做的是跨多个函数对象重用相同的底层函数代码。所以实际上,这只是计算本身和对象(代码附加到的函数对象)的成本。还不算太糟,物品相当便宜。