我在使用Python后很长一段时间回到JavaScript,所以我忘记了一些Javascript最佳实践。
我想使用预定义的数据结构,例如bucket-js提供的数据结构。但是,我注意到bucket-js没有为其对象提供太多的toString()方法;所以我想提供自己的方法。
扩展此类型库对象的最佳方法是什么,以便扩展在整个项目中可用,但不涉及更改库源代码?
答案 0 :(得分:3)
如果您的目标环境是浏览器,那么只需将扩展库对象的代码放在代码的其余部分。
<script src="bucket-js"></script>
<script>
buckets.Set.prototype.toString = function() {
//...
}
// Rest of your code
</script>
如果你的目标是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');