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

使用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不是定义了吗?

按照你的代码,

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
    }
})
【热门文章】
【热门文章】