Я работаю над некоторыми запросами Map / Reduce для MongoDB и пытаюсь сделать следующее (в двух словах).
m = function()
{
this.convert = function(val)
{
return val+1;
}
emit(convert(this.age), this.doesWearGlasses);
}
r = function(k, v)
{
count = 0;
for(var i = 0; i < v.length; i++)
{
count += v[i];
}
return count;
}
if(tuned)
{
m.convert = function(val)
{
return val;
}
}
/**
* Continue to running the M/R query
*/
Следует отметить, что я пишу это как приложение Node.js, но я предполагаю, что большинство тех же принципов применимы к любому JavaScript.
Проблема в том, что я не думаю, что смогу изменить его, не создав объект, аля mTmp = new m();
, однако не могу, потому что emit()
(и все остальное) не определено.
Я пытался использовать m.prototype.convert = function
, но это не работает. Значение m.toString()
не изменяется.