扩展JavaScript库的最佳方法是什么?

5
我在长时间使用Python后又回到JavaScript,因此我已经忘记了一些JavaScript最佳实践。
我想使用预定义的数据结构,例如bucket-js提供的数据结构。但是,我注意到bucket-js并没有为其对象提供太多toString()方法;因此我想提供自己的方法。
如何扩展这种类型的库对象是最好的方式,以便这些扩展在整个项目中都可用,但不涉及对库源代码进行更改?
1个回答

3

浏览器

如果您的目标环境是浏览器,那么只要将扩展库对象的代码放在您的其余代码之前即可。

示例:

<script src="bucket-js"></script>
<script>
        buckets.Set.prototype.toString = function() {
            //...
        }

        // Rest of your code
</script>

Node.js

如果你的目标是 Node.js 或者通过类似 Browserify 的浏览器,使用相同的模块化组织方式,一种方法是创建自己的补丁模块来修补库对象并将其传回。然后你需要引入这个模块而不是原始的模块。

更多信息请参考:Monkey Patching in Node.js

示例:

myPatchedBucketJS/index.js

var bucket = require('bucket-js');

buckets.Set.prototype.toString = function() {
    //...
}

module.exports = bucket;

main.js

var bucket = require('myPatchedBucketJS');

谢谢!那正是我需要知道的。顺便说一下,我正在使用Node.js。 - Toaster
好的,Node.js 是未来。 :-) - Josh Wulf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接