Javascript 如何通过requireJs从模块文件加载函数?

Javascript 如何通过requireJs从模块文件加载函数?,javascript,jquery,requirejs,Javascript,Jquery,Requirejs,我是新来的。代码如下: //main.js require.config({ baseUrl: "./js", paths: { "jquery" : "jquery-2.1.1.min", "ui" : "ui", "funcs" : "funcs" } }); require(["funcs"]); //ui.js define(["jquery", "funcs"], function(

我是新来的。代码如下:

//main.js
require.config({
    baseUrl: "./js",
    paths: {
        "jquery"    : "jquery-2.1.1.min",
        "ui"        : "ui",
        "funcs"     : "funcs"
    }
});

require(["funcs"]);

//ui.js
define(["jquery", "funcs"], function($, f){
    return {
        setValue: function(selector, text){
            $(selector).text(text);
        },
        setBgColor: function(hexCode){
            $("body").css("background-color", hexCode);
        }
    };
});

//funcs.js
    define(["jquery", "ui"], function($, u){
    return {
        setTimer: function(hours){
            var mSec = hours*3600;
            var timer = setInterval(function(){
                if(mSec<=0){
                    u.setBackgroundColor("#ff0000");
                }else{
                    var updateH = this.addZero(Math.floor(mSec/3600));
                    var updateM = this.addZero(Math.floor((mSec-updateH*3600)/60));
                    var updateS = this.addZero(Math.floor(mSec-updateH*3600-updateM*60));
                    //u.setValue(".display-countdown", updateH+":"+updateM+":"+updateS);
                    console.log(updateH+":"+updateM+":"+updateS);
                    mSec--;
                }
            }, 1000);
        },
        addZero: function(value){
            var n = parseInt(value);
            if(n<=9){
                return "0"+n.toString();
            }else{
                return n.toString();
            }
        }   
    }
});
但它返回“无法读取未定义的属性“setTimer”和“addZero未定义”。有人能帮我吗?

固定代码:

define(["jquery", "ui"], function($, u){
    return {
        setTimer: function(hours){
            var mSec = hours*3600;
            var timer = setInterval(function(){
                if(mSec<=0){
                    u.setBgColor("#ff0000");
                }else{
                    var updateH = addZero(Math.floor(mSec/3600));
                    var updateM = addZero(Math.floor((mSec-updateH*3600)/60));
                    var updateS = addZero(Math.floor(mSec-updateH*3600-updateM*60));
                    u.setValue(".display-countdown", updateH+":"+updateM+":"+updateS);
                    console.log(updateH+":"+updateM+":"+updateS);
                    mSec--;
                }
            }, 1000);
        }
    };

    function addZero(value){
        var n = parseInt(value);
        if(n<=9){
            return "0"+n.toString();
        }else{
            return n.toString();
        }
    }   
});
define([“jquery”,“ui]”),function($,u){
返回{
设置计时器:功能(小时){
var mSec=小时*3600;
var timer=setInterval(函数(){
如果(毫秒)
require(["funcs"], function(f){
    f.setTimer(2);
});
define(["jquery", "ui"], function($, u){
    return {
        setTimer: function(hours){
            var mSec = hours*3600;
            var timer = setInterval(function(){
                if(mSec<=0){
                    u.setBgColor("#ff0000");
                }else{
                    var updateH = addZero(Math.floor(mSec/3600));
                    var updateM = addZero(Math.floor((mSec-updateH*3600)/60));
                    var updateS = addZero(Math.floor(mSec-updateH*3600-updateM*60));
                    u.setValue(".display-countdown", updateH+":"+updateM+":"+updateS);
                    console.log(updateH+":"+updateM+":"+updateS);
                    mSec--;
                }
            }, 1000);
        }
    };

    function addZero(value){
        var n = parseInt(value);
        if(n<=9){
            return "0"+n.toString();
        }else{
            return n.toString();
        }
    }   
});