声明原型并在NodeJS的同一文件中使用它

时间:2018-11-18 00:55:13

标签: javascript node.js module-export

我创建了一个函数,该函数具有将在其他文件中使用的原型。

function.js

function Graph() {
  //Constructor
  this.Client = null;
}
module.exports = Graph;
Graph.prototype.Init = async function Init() {
      ....
      tokenResult = await GetToken();
};

function GetToken() {
 ...
};

我将在文件外部使用GetToken方法。所以我添加了GetToken函数作为原型

function Graph() {
  //Constructor
  this.Client = null;
}
module.exports = Graph;
Graph.prototype.Init = async function Init() {
      ....
      tokenResult = await GetToken(); <== Error here
};
Graph.prototype.GetToken = function GetToken() {
     ...
};

运行程序时出现此错误:

GetToken is not defined

我也知道如何仅导出令牌的值而不导出函数(以便我可以使用相同的令牌)

1 个答案:

答案 0 :(得分:1)

对于像Graph.prototype.GetToken = function GetToken()这样的函数表达式,名称GetToken仅在函数主体中是局部的。因此,要以所需的方式使用它,您需要引用this.GetToken()才能从原型中获取功能:

function Graph() {
  //Constructor
  this.Client = null;
}
Graph.prototype.Init = async function Init() {
      tokenResult = await this.GetToken(); 
      console.log(tokenResult)
};
Graph.prototype.GetToken = function GetToken() {
     return Promise.resolve("GetToken Called")
};

g = new Graph()
g.Init()