我挣扎着,黑了这Javascript代码并将工作:重构的Javascript继承结构
function mmlfunc(name, evalcallback, mmlparts)
{
this.name = name;
// ...
}
mmlfunc.prototype.evalFunc = function()
{
return this.evalcallback(this.args);
};
mmlfunc.prototype.getMML = function()
{
var mml = this.mmlparts[0];
// ...
return mml;
}
// ...
mmlnum = jQuery.extend(true, {},
new mmlfunc('Value',
function() { return this.val; },
[ '<mn>', '</mn>' ]));
mmlnum.getMML = function()
{
return this.mmlparts[0] + this.val + this.mmlparts[1];
}
// ...
var n1 = jQuery.extend(true, {}, mmlnum),
n2 = jQuery.extend(true, {}, mmlnum),
n3 = jQuery.extend(true, {}, mmlnum),
n4 = jQuery.extend(true, {}, mmlnum);
n1.val = 6;
n2.val = 7;
n3.val = 8;
n4.val = 9;
如何获得new()
上n1
工作 - n4
,而不必使用extend()
?我还能做些什么来清理这个混乱?
谢谢。
您的解决方案工作得很好。与C++/C#/ Java相比,我承认在Javascript对象模型方面相当困惑,但我会通过它。 – Reinderien 2011-05-26 00:37:22