簡體   English   中英

為什么我不能使用require()導入的javascript文件中的函數?

[英]Why can't I use functions from javascript-files that are imported by require()?

我開始使用電子

電子快速啟動index.html中,使用require()包含JavaScript文件。

<script>
  // You can also require other files to run in this process
  require('./renderer.js')
</script>

現在我在renderer.js定義了一個名為flash()的簡單函數,以及一個日志輸出:

function flash(text) {
  alert("Text: " + text + "!");
}

console.log("Renderer loaded.");

啟動電子應用程序后,我在dev-tools的控制台中輸出日志。 但調用flash()不起作用。

使用時包含腳本

<script src='./renderer.js'></script>

我可以調用這個函數。

  • require()函數來自哪里?
  • 為什么我在使用require包含文件時不能使用該功能?
  • 如何使用所需文件中定義的函數?
  • 我什么時候應該使用require() ,什么時候應該使用src=""

require()函數來自哪里?

require在電子是非常相似, require在Node.js的 Electron不僅僅是一個網絡瀏覽器; 它旨在使用HTML,CSS和JavaScript構建桌面應用程序。 因為它的目的不僅僅是網絡,我認為Electron的創造者添加了他們自己的小觸摸,使其成為您可以使用的更加精彩的技術。 您可以在此處閱讀更多相關信息: https//nodejs.org/api/modules.html#modules_modules

為什么我在使用require包含文件時不能使用該功能?

這是因為它們被封裝在模塊內部,因此它不能用於任何其他腳本文件。

如何使用所需文件中定義的函數?

要使用flash功能,您需要將其導出,如下所示:

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調用中獲取它,如下所示:

<script>
  // You can also require other files to run in this process
  var renderer = require('./renderer.js');

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

我什么時候應該使用require(),什么時候應該使用src =“”?

免責聲明:我的意見。

總是require使用require 如果要導入不使用require庫,而是選擇全局聲明變量,則只使用script src=''

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM