[英]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.