1

我想扩展JSONnode.js 的原生对象。在我的示例中,我能够对其进行扩展以添加一个merge(json1, json2)合并 2 个 JSON 的函数:

JSON.merge = function(target) {
    var sources = [].slice.call(arguments, 1);
    sources.forEach(function (source) {
        for (var prop in source) {
            target[prop] = source[prop];
        }
    });
    return target;
}

这个脚本很大程度上来自这个问题:Combine or merge JSON on node.js without jQuery

为了获得更简洁的代码,我将此脚本放在库文件夹中,并在我的主脚本中使用它。这就是我所做的...

我的lib/JSON.js文件:

extends.merge = function(target){
    // The same script as above.
}

在我的app.js文件中:

JSON = require('./lib/JSON')

它运行良好,但现在原生 JSON 方法不起作用(如.stringify)。然后我稍微挖掘了一下,并尝试使用 扩展 JSON .prototype,如下所示(在 中lib/JSON.js):

extends.prototype.merge = ...

但是得到以下错误:

TypeError: Cannot set property 'merge' of undefined

我真的不知道该做什么(以及我在做什么),因为解决一个问题会导致另一个问题。

请,需要帮助。

谢谢。

4

0 回答 0