扩展JavaScript库的最佳方法?

时间:2015-12-29 14:12:32

标签: javascript node.js javascript-objects

我在使用Python后很长一段时间回到JavaScript,所以我忘记了一些Javascript最佳实践。

我想使用预定义的数据结构,例如bucket-js提供的数据结构。但是,我注意到bucket-js没有为其对象提供太多的toString()方法;所以我想提供自己的方法。

扩展此类型库对象的最佳方法是什么,以便扩展在整个项目中可用,但不涉及更改库源代码?

1 个答案:

答案 0 :(得分: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');