好的,我希望您理解这个想法 - 因为也许有更好的解决方案:
我为 expressJS 创建了一些模型,它是渲染引擎翡翠。但是因为无论如何它们都是 JS 模型,所以我想在客户端使用它们:作为 KnockoutJS 模型。
为此,每个模型都有 2 个功能:enableKO 和 disableKO 功能。到目前为止,一切都很好:但现在我正在尝试使用一些我想在服务器端和客户端上使用的逻辑。
为了获取这些值 - 无论它们是默认的 JS 对象还是 Knockout-observeable,我都添加了 2 个函数:
Function.prototype.getValue = function() { return this(); }
Object.prototype.getValue = function() { return this; }
现在我可以调用 model.value.getValue() 并得到我正在寻找的值 - 理论上。
如果我实际调用该函数,我得到的错误是“500 RangeError:超出最大调用堆栈大小”,这几乎毫无价值。
我已经在我的 app.js 文件以及客户端将调用的 js 文件中定义了这两个函数。
这就是我提出问题的原因:还是有更好的方法来实现我的目标?谢谢!