使用requirejs说变量未定义是什么问题?

mod1.js


define(function() {

    return {a : 3};    

});



mod2.js


define(['mod1'],function(m1) {

    function func2() {

        var a,b=2,c=3;

        a = c*m1.a;

    }    

    return {

        a : a,

        b : c

    }

})



main02.js


requirejs(['mod2'],function(m2) {

    console.log(m2.a)

})


加载 <script src="../require.min.js" data-main="main02.js"></script>

ReferenceError: a is not defined 这个是报的错误 请问是什么问题啊 a不是定义了吗?

慕田峪9158850
浏览 1487回答 1
1回答

梵蒂冈之花

按照你的代码,mod2.jsdefine(['mod1'],function(m1)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;//注意这里,你的a是声明在func2里了,外面访问不到 &nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;func2()&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;a,b=2,c=3; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;=&nbsp;c*m1.a; &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;//然后在这要用a,当然是未定义啊 &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;:&nbsp;a,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;:&nbsp;c &nbsp;&nbsp;&nbsp;&nbsp;} })补充改成这样就可以:define(['mod1'],function(m1)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;a,&nbsp;b&nbsp;=&nbsp;2,&nbsp;c&nbsp;=&nbsp;3; &nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;=&nbsp;c&nbsp;*&nbsp;m1.a;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;:&nbsp;a,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;:&nbsp;c &nbsp;&nbsp;&nbsp;&nbsp;} })
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript