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.那么为什么它不会改变?我必须做一些完全错误的事情,并且遗漏一些明显的东西。
答案 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
});