在不同模块中更改变量

Changing variable in different module

本文关键字:改变 变量 模块      更新时间:2023-09-26

我正在创建一款扫雷游戏,我希望根据游戏板中的行数设置用户拥有的旗帜数量。我在不同的模块中有这两个东西,我不知道为什么我不能让模块正确通信。很明显我做错了什么,但我不太明白是什么。

var gameboard = (function() {
var initialize = function(rows, cols) {
    var flags = 0;
    for(var x = 0; x < rows; x++) {
            flags++;
            for(var y = 0; y < cols; y++) {
                var unit = $("<div class='unit'></div>");
                unit.width(($('#gameboard').width() / cols) - 2).height(($('#gameboard').height() / rows) - 2).appendTo('#gameboard');
            }
        }
    addId(rows, cols);
    gatherMines(rows);
    setFlags(flags);
};
var setFlags = function(number) {
    gamePlay.flagCount = number;
}
return {
    initialize: initialize,
    flags: setFlags
};
}());

var gamePlay = (function() {
var flagCount;
return {
    go: go,
    flagCount: flagCount
};
}());

考虑gamePlay为对象:

var Gameplay = function(flagCount) {
    this.flagCount = flagCount;
};

你现在可以在Gameboard对象中创建GamePlay对象的实例。例如在你的initialize方法中:

var gp = {};
var initialize = function(){
    gp = new Gameplay(0);
}

你现在可以在任何地方使用gp,只要initialize()已经执行。