未捕获的ReferenceError:未为导入的模块定义值

时间:2017-07-05 02:36:04

标签: javascript module ecmascript-6

这是一个场景:

index.js

import test1 from './test1';
window.test1 = test1;

test1.js

import test2 from './test2';
var test1 =  (function (){
  var self = this;
  var x = {};
  x.test2 = test2;
  var testValue = 'TEST VALUE';
  let init = function(){
        console.log ( x.test2() );
  }  
  init();
  return {
    x: x,
    testValue: testValue
  }
})();
export default test1;

test2.js

var test2 =  function () {
    return (` value to use ${testValue} ` )
};

export default test2;

运行index.js时,我在test2.js中收到以下错误  未捕获的ReferenceError:未定义testValue

有没有办法使用testValue而不必传入它?

2 个答案:

答案 0 :(得分:0)

你可以将test1转换为Class Object,然后在test2中使用this.value,它将使用test1的实例值

答案 1 :(得分:0)

  

有没有办法使用testValue而不必传递它?

在执行该函数之前,您必须确保将其设置为全局变量。但是使用全局变量通常是糟糕的设计。传递价值更容易推理。既然你没有解释为什么要这样做,那就是我能给出的所有建议。