requirejs带有揭示模块模式

时间:2016-06-02 23:39:11

标签: javascript module requirejs

define(['controls'], function (controls) 
{
    var something = 10;
    var someFunction = function(someValue)
    {
        something = someValue;
    }; 
    return {
        smth:someFunction,
        smvl:something
    };
});

我为了解决问题而简化了。我正在使用requirejs。

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

所以代码的第一部分是 player.js 。在我的主模块中,第一个控制台日志显示" 10"然后我使用 player.js 中的公共函数来更改something值。

但是当我再次使用控制台日志时,它仍会显示10.那么为什么它不会改变?我必须做一些完全错误的事情,并且遗漏一些明显的东西。

1 个答案:

答案 0 :(得分:0)

试试这个:

player.js

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

调用代码

require(['player'], function (player) {
    console.log(player.smvl); //10
    player.smth(50);
    console.log(player.smvl); //50
    console.log(window.smvl); //undefined
});