Tag: 覆盖

为什么我不能在JavaScript中“覆盖”一个方法?

我想重写一个JS对象的函数,把它添加到它的原型。 var originalObject = function(){ this.someFun = function(){ // … } } var otherObj = function(){ this.otherFun = function(){ originalObject.prototype.fun = function(){ return 'This is the overwritten function.'; } var o = new originalObject(); return o.fun() } } 这样当我执行new otherObj().otherFun()我有预期的结果( '这是被覆盖的函数' ),但如果我试图添加的函数已经是originalObject一部分 var originalObject = function(){ this.fun = function(){ return 'This is the original function'; […]

我可以通过在节点的全局范围内执行蓝鸟来覆盖ES6的承诺吗?

我想使用蓝鸟的Promise / A +开放标准的实现,并重写本地ES6 Promise 。 我还希望bluebird实现在随后导入的模块中随处可用,而不必在每个模块中都要求。 蓝鸟的入门页面告诉我: var Promise = require("bluebird"); ,这导致覆盖原生的Promise元素。 因为蓝鸟是规范的超集,它不会破坏现有的代码,因此应该是安全的使用。 但是,因为我知道这被认为是不好的做法: 扩展或取代原生语言,和 定义全局variables,以便在依赖于它的需求链中使用 ,当我想将其包含在节点应用程序的基本脚本中时,我很谨慎: import Promise from 'bluebird'; global.Promise = Promise; 这是不好的做法? 我应该坚持在每一个文件中导入蓝鸟吗?

Gulp能否覆盖所有的src文件?

比方说,我想replace一堆文件中的版本号,其中许多文件位于子目录中。 我将通过gulp-replacepipe道来运行正则expression式replacefunction; 但我最终会想覆盖所有的原始文件 。 任务可能看起来像这样: gulp.src([ './bower.json', './package.json', './docs/content/data.yml', /* …and so on… */ ]) .pipe(replace(/* …replacement… */)) .pipe(gulp.dest(/* I DONT KNOW */); 那么我怎样才能结束它,以便每个src文件只是覆盖自己,在原来的位置? 有什么我可以传递给gulp.dest()会做到这一点?