Toa*_*ter 5 javascript node.js javascript-objects
在使用 Python 工作了很长时间后,我又回到了 JavaScript,所以我忘记了一些 Javascript 最佳实践。
我想使用预定义的数据结构,例如bucket-js提供的数据结构。但是,我注意到bucket-js 并没有为其对象提供很多toString() 方法;所以我想提供我自己的方法。
扩展这种类型的库对象以便扩展在我的整个项目中可用,但不涉及对库源代码进行更改的最佳方法是什么?
如果您的目标环境是浏览器,则只需将扩展库对象的代码放在其余代码之上即可。
<script src="bucket-js"></script>
<script>
buckets.Set.prototype.toString = function() {
//...
}
// Rest of your code
</script>
Run Code Online (Sandbox Code Playgroud)
如果您的目标是 Node.js 或通过Browserify等与相同的基于模块的组织一起工作的浏览器,一种方法是创建您自己的修补模块,该模块修补库对象,然后将其传回。然后您需要这个模块而不是普通模块。
更多信息:Node.js 中的 Monkey 修补。
myPatchedBucketJS/index.js
var bucket = require('bucket-js');
buckets.Set.prototype.toString = function() {
//...
}
module.exports = bucket;
Run Code Online (Sandbox Code Playgroud)
main.js
var bucket = require('myPatchedBucketJS');
Run Code Online (Sandbox Code Playgroud)