首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我不能使用javascript中的函数--这些文件是由require()导入的?

问为什么我不能使用javascript中的函数--这些文件是由require()导入的?
EN

Stack Overflow用户
提问于 2016-09-02 15:27:15
回答 1查看 4.2K关注 0票数 8

我开始使用电子。

在电子快速启动的index.html中,使用require()包括一个JavaScript文件。

代码语言:javascript
复制
<script>
  // You can also require other files to run in this process
  require('./renderer.js')
</script>

现在,我在flash()中定义了一个名为renderer.js的简单函数,以及一个日志输出:

代码语言:javascript
复制
function flash(text) {
  alert("Text: " + text + "!");
}

console.log("Renderer loaded.");

启动电子应用程序后,我在开发工具的控制台中输入日志输出.但是调用flash()不起作用。

当包含脚本时使用

代码语言:javascript
复制
<script src='./renderer.js'></script>

我可以打电话给这个函数。

  • require() 函数从何而来?
  • 为什么在使用require**?**包含文件时不能使用函数
  • 如何使用在所需文件中定义的函数?
  • 什么时候应该使用require() src=""**?**,什么时候使用?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-02 17:18:13

需方()函数从何而来?

电子中的require和Node.js中的require非常相似。电子不仅仅是一个web浏览器;它的目的是使用HTML、CSS和JavaScript构建桌面应用程序。因为它的目的不仅仅是网络,我认为电子的创建者增加了他们自己的一点触觉,让它成为你可以使用的一项更棒的技术。你可以在这里读到更多关于它的信息:模块。

为什么我不能使用函数时,包括文件使用要求?

这是因为它们是模块中的封闭式,因此它不能用于任何其他脚本文件。

如何使用在所需文件中定义的函数?

为了使用flash函数,您需要导出它,如下所示:

代码语言:javascript
复制
function flash(text) {
  alert("Text: " + text + "!");
}
module.exports.flash = flash;
// Note: this is how we export. We assign properties to the `module.exports`
//   property, or reassign `module.exports` it to something totally
//   different. In  the end of the day, calls to `require` returns exactly
//   what `module.exports` is set to.

console.log("Renderer loaded.");

但是,仅这一点并不能让您轻易地使用flash函数;您必须从require调用中显式地获取它,如下所示:

代码语言:javascript
复制
<script>
  // You can also require other files to run in this process
  var renderer = require('./renderer.js');

  renderer.flash('Some text');
</script>

何时应该使用src=(),什么时候应该使用“”?

免责声明:我的意见。

喜欢总是使用require。仅当您希望导入不使用script src=''但选择全局声明变量的库时才使用require。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39295951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档