- 17
- 0
问题描述
在看gulp@4.0.0的源码,发现Gulp函数使用call继承了Undertaker函数并且可以访问到Undertaker函数prototype上的方法。可是call的方法继承不是访问不到原型链上的方法么?
问题出现的环境背景及自己尝试过哪些方法
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
/Undertaker/
'use strict';
var inherits = require('util').inherits;
var EventEmitter = require('events').EventEmitter;
var DefaultRegistry = require('undertaker-registry');
var tree = require('./lib/tree');
var task = require('./lib/task');
var series = require('./lib/series');
var lastRun = require('./lib/last-run');
var parallel = require('./lib/parallel');
var registry = require('./lib/registry');
var _getTask = require('./lib/get-task');
var _setTask = require('./lib/set-task');
function Undertaker(customRegistry) {
EventEmitter.call(this);
this._registry = new DefaultRegistry();
if (customRegistry) {
this.registry(customRegistry);
}
this._settle = (process.env.UNDERTAKER_SETTLE === 'true');
}
inherits(Undertaker, EventEmitter);
Undertaker.prototype.tree = tree;
Undertaker.prototype.task = task;
Undertaker.prototype.series = series;
Undertaker.prototype.lastRun = lastRun;
Undertaker.prototype.parallel = parallel;
Undertaker.prototype.registry = registry;
Undertaker.prototype._getTask = _getTask;
Undertaker.prototype._setTask = _setTask;
module.exports = Undertaker;
/gulp/
'use strict';
console.log("project-gulp@4.0.0")
var util = require('util');
var Undertaker = require('undertaker');
var vfs = require('vinyl-fs');
var watch = require('glob-watcher');
function Gulp() {
Undertaker.call(this);
console.log("**")
console.log(Undertaker.prototype);
console.log("**")
// Bind the functions for destructuring
this.watch = this.watch.bind(this);
this.task = this.task.bind(this);
this.series = this.series.bind(this);
this.parallel = this.parallel.bind(this);
this.registry = this.registry.bind(this);
this.tree = this.tree.bind(this);
this.lastRun = this.lastRun.bind(this);
this.src = this.src.bind(this);
this.dest = this.dest.bind(this);
this.symlink = this.symlink.bind(this);
}
你期待的结果是什么?实际看到的错误信息又是什么?
- 共 0 条
- 全部回答
-
沐沁ど彼岸花※ 普通会员 1楼
在Gulp中,源代码上的继承可以通过
extends关键字来实现。extends关键字用于在已有代码的基础上创建一个新的代码块,而不需要重新编写。例如,如果你有一个名为
src的文件夹,里面有一个名为app.js的文件,你需要在一个新的文件夹dest中使用Gulp来生成多个输出文件。你可以这样做:-
在
dest文件夹中创建一个名为dist的文件夹。 -
在
app.js文件中,创建一个名为main的函数:
javascript function main() { // ... }- 在
dest文件夹中创建一个名为styles的文件夹,并在其中创建一个名为style.css的文件:
javascript function main() { // ... var styles = require('./styles'); var html = ` <style> /* Style here */ </style> `; return html + styles; }- 在
src文件夹中创建一个名为scripts的文件夹,并在其中创建一个名为script.js的文件:
javascript function main() { // ... var scripts = require('./scripts'); var html = ` <script> // Script here </script> `; return html + scripts; }- 在
dest文件夹中创建一个名为images的文件夹,并在其中创建一个名为image.png的文件:
javascript function main() { // ... var images = require('./images'); var html = ` <img src="${images.image.png}"> `; return html + images; }- 在
src文件夹中创建一个名为test的文件夹,并在其中创建一个名为test.js的文件:
javascript function main() { // ... var tests = require('./test'); var html = ` <script> // Test here </script> `; return html + tests; }在这个例子中,我们使用了Gulp的
require函数来加载app.js和styles.css,然后使用concat函数来合并这些文件,并使用html函数来生成HTML输出。请注意,这个例子只是一个基本的示例,你可能需要根据你的具体需求来调整和扩展它。
-
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
