[英]nodejs function declaration
我在文件中聲明了一個像這樣的函數:
File1:
module.exports = {
function1: function(callback){
//do some work
},
}
在另一個文件中,如果我導入File1並調用file1.function1,則該函數運行並得到結果。
雖然,如果我在File1中並聲明另一個函數:
module.exports = {
function1: function(callback){
//do some work
},
function2: function(callback){
var result = function1...
}
}
在這種情況下,我沒有定義function1。
為什么會這樣呢? 是否應該以某種方式與調用的位置無關地調用它?
問題是您試圖從錯誤的范圍訪問function1。 在您的范圍內沒有定義的“ function1”變量。 您只有module.exports.function1
const exportObject = {
function1: function(callback){
//do some work
},
function2: function(callback){
var result = exportObject.function1... // or this.function1
}
}
module.exports = exportObject;
應該管用
更新:更多示例:
function1() {
// this will be executed by example2
}
var example3 = {
function1: function () {
// this will be executed by example3
}
}
const exportObject = {
function1: function(callback){
// This will be executed by example1
},
function2: function(callback){
// example1
var result = exportObject.function1() // or this.function1()
// example2
var result = function1()
// example3
var result = example3.function1()
}
}
module.exports = exportObject;
function1
不是變量。
它是您分配給module.exports
的對象的屬性。
比較一下:
var foo = { bar: 1 } console.log(bar);
bar
是foo
的屬性,而不是本身的變量。
您必須這樣對待它。
var foo = { bar: 1 } console.log(foo.bar);
function1
也是如此。
您需要將其作為對象屬性進行訪問:
var result = module.exports.function1();
如果在文件1中創建功能module.exports.function1
,則在文件1中訪問它的方式是說module.exports.function1
。 有點長。 或者,您可以在文件1中像這樣創建它:
var function1 = function() {...};
module.exports.function1 = function1;
function1();
您可以繼續使用文件2中的function1
:
var file1 = require('./file1');
file1.function1();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.