Не так уж плохо создать объект mmlnum
и использовать $.extend
для каждого n-var. Если они не используются, то настройка ваших n-переменных должна выглядеть примерно так:
var n1 = new mmlfunc('Value',
function() { return this.val; },
[ '<mn>', '</mn>' ])),
n2 = new mmlfunc('Value',
function() { return this.val; },
[ '<mn>', '</mn>' ])),
n3 = new mmlfunc('Value',
function() { return this.val; },
[ '<mn>', '</mn>' ])),
n4 = new mmlfunc('Value',
function() { return this.val; },
[ '<mn>', '</mn>' ]));
n1.getMML = function() {
return this.mmlparts[0] + this.val + this.mmlparts[1];
};
n2.getMML = function() {
return this.mmlparts[0] + this.val + this.mmlparts[1];
};
n3.getMML = function() {
return this.mmlparts[0] + this.val + this.mmlparts[1];
};
n4.getMML = function() {
return this.mmlparts[0] + this.val + this.mmlparts[1];
};
... который менее удобочитаемый и менее СУХОЙ. Даже если до этого нужно было многое почистить, я думаю, вы должны оставить ту часть, которую вы цитировали, как есть.