首頁  >  問答  >  主體

javascript - 使用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不是定义了吗?
天蓬老师天蓬老师2749 天前1081

全部回覆(1)我來回復

  • 迷茫

    迷茫2017-04-11 11:38:06

    按照你的代码,

    mod2.js

    define(['mod1'],function(m1) {
        //注意这里,你的a是声明在func2里了,外面访问不到
        function func2() {
            var a,b=2,c=3;
            a = c*m1.a;
        }
        
        //然后在这要用a,当然是未定义啊
        return {
            a : a,
            b : c
        }
    })

    补充

    改成这样就可以:

    define(['mod1'],function(m1) {
        var a, b = 2, c = 3;
        a = c * m1.a;
        
        return {
            a : a,
            b : c
        }
    })

    回覆
    0
  • 取消回覆