我正在尝试使用 memoization 来加速我的 Javascript,但我需要它在一个proto
方法上,并且我需要所说的方法来访问该this
对象,它让我很适合。这是我所拥有的:
MyObj.prototype.myMethod = function(){
var self = this
, doGetData = (function() {
var memo = []
, data = function(obj) {
var result = memo;
if (obj.isDirty) {
obj.isDirty = false;
result = $.map(obj.details, function(elem, i) {
return elem.export();
});
memo = result;
}
return result;
}
return data;
}())
;
return doGetData(self);
};
我可以让它运行,但我无法让它记忆。我知道出了点问题,但我不知道是什么。我知道有很多关于如何记忆的例子,但我遇到的没有一个像这样处理范围。