我在webpack模块中返回一个值,但是我无法在函数外部使用它。除非我犯了一个愚蠢的错误,否则我想也许我错过了关于模块工作方式的基本信息。有人可以开导我吗?
function getProjectID() {
const project_id = document.getElementById('project-title')
.getAttribute('data-project-id');
console.log("Project id inside is" + project_id); //Logs out the correct value
return project_id;
}
getProjectID();
console.log("Project id outside is" + project_id); //Uncaught ReferenceError: project_id is not defined
答案 0 :(得分:2)
JavaScript具有函数范围,因此project_id
不会在函数外部访问,因为它是声明它的位置。
指定返回值以访问它:
const project_id = getProjectID();
答案 1 :(得分:0)
根据您的代码和问题,很难说出您实际想要返回的内容,但我猜您想要一个可以从data-project-id
返回#project-title
属性值的模块。
如果我的假设是正确的,那么您需要将module.exports
实际设置为getProjectID
函数。
getProjectId.js
module.exports = function getProjectID() {
return document.getElementById('project-title').getAttribute('data-project-id');
}
注意:您是否将module.exports函数定义为匿名无关紧要,但为了清楚起见,我保留了名称。
someOtherFile.js
var getProjectId = require('getProjectId');
console.log('Project id is... %s', getProjectID());