Javascript 具有显示模块模式的requirejs

Javascript 具有显示模块模式的requirejs,javascript,module,requirejs,Javascript,Module,Requirejs,为了解决这个问题,我简化了。我使用的是requirejs define(['controls'], function (controls) { var something = 10; var someFunction = function(someValue) { something = someValue; }; return { smth:someFunction, smvl:something

为了解决这个问题,我简化了。我使用的是requirejs

define(['controls'], function (controls) 
{
    var something = 10;
    var someFunction = function(someValue)
    {
        something = someValue;
    }; 
    return {
        smth:someFunction,
        smvl:something
    };
});
因此,代码的第一部分是player.js。在我的主模块中,首先控制台日志显示“10”,然后我使用player.js中的公共函数来更改
某些内容

但当我再次使用控制台日志时,它仍然显示10。那么为什么它没有改变呢?我一定是做错了什么,错过了什么明显的东西。

试试这个:

player.js

require(['player', 'world', 'controls'], function (player, world, controls) 
{
    console.log(player.smvl);
    player.smth(50);
    console.log(player.smvl);
});
呼叫码

define('player', function () {
    var player = function () {
        this.smvl = 10;
        return {
            smth: function (someValue) {
                this.smvl = someValue;
            },
            smvl: this.smvl
        }
    }
    return new player();
});
试试这个:

player.js

require(['player', 'world', 'controls'], function (player, world, controls) 
{
    console.log(player.smvl);
    player.smth(50);
    console.log(player.smvl);
});
呼叫码

define('player', function () {
    var player = function () {
        this.smvl = 10;
        return {
            smth: function (someValue) {
                this.smvl = someValue;
            },
            smvl: this.smvl
        }
    }
    return new player();
});