class Downloader { constructor(data, options) { this.data = data; this.options = options; this.item = null; this.onStart = null; this.onProgress = null; this.onCompleted = null; this.data.progress = 0; // 新增 progress 属性 this.data.status='pause';//true 表示 进度没有结束,继续下载 this.data.timeid=0; } start() { const win = BrowserWindow.getFocusedWindow(); this.options.onStarted = (item) => { this.item = item; this.data.status='process';//true 表示 进度没有结束,继续下载 this.onStart(); }; this.options.onTotalProgress=(progress)=>{ this.data.progress = progress.percent * 100; // 更新 progress 属性 this.onTotalProgress(progress); } this.options.onCompleted = () => { this.onCompleted(); }; download(win, this.data.dowloadLink, this.options); } pause() { if (this.item) { this.item.pause(); } } resume() { if (this.item) { this.item.resume(); } } cancel() { if (this.item) { this.item.cancel(); } } } 这个下载器,里面的方法没有挂载到对象上是什么原因。、
时间: 2024-04-28 07:26:25 浏览: 87
raw_data_downloader.zip
这个下载器中的方法没有挂载到对象上是因为它们是定义在 Downloader 类的原型上的。在 JavaScript 中,类的方法通常都是定义在原型上的,而不是在对象实例上。这样做的好处是可以节省内存,因为所有的对象实例都可以共享同一个方法实现。当我们创建一个类的实例时,JavaScript 引擎会自动将该实例的原型指向该类的原型,因此该实例就可以访问该类的所有方法。
阅读全文