Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
面向对象。表示如何与对象交互。本例中的Javascript_Javascript_Oop - Fatal编程技术网

面向对象。表示如何与对象交互。本例中的Javascript

面向对象。表示如何与对象交互。本例中的Javascript,javascript,oop,Javascript,Oop,我正在创建一个tic-tac-toe游戏来使用Javascript中的O-O代码,或者应该说是伪面向对象。我很难理解一个对象的表示,在这种情况下,每个网格单元都是一个对象。如何从单击单元格到告诉单元格对象在此处放置标记 这是我的html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html lang="e

我正在创建一个tic-tac-toe游戏来使用Javascript中的O-O代码,或者应该说是伪面向对象。我很难理解一个对象的表示,在这种情况下,每个网格单元都是一个对象。如何从单击单元格到告诉单元格对象在此处放置标记

这是我的html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" dir="ltr">
    <head>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
        <script type="text/javascript" src="scripts/tic-tac-toe.js"></script>
        <link rel="stylesheet" type="text/css" href="css/style.css" />
    </head>
    <body>
        <div id="grid"></div>
        </body>
</html>
下面是未完成的javascript页面:

var Grid = function() {
var cells = [];
// Todo: Finish 
const WINNING_COMBINATIONS = new Array();

this.setup = function() {
    for (var i = 0; i < 3; i++) {
        cells.push(new Array());
        for (var j = 0; j < 3; j++) {
            var new_cell = new Cell();
            cells[i].push(new_cell);
        }
    }

    var grid_div = document.getElementById("grid");
    var output = '';
    for (var i = 0; i < cells.length; i++) {
        for (var j = 0; j < cells.length; j++) {
            output += cells[i].placeCell();
        }
        output += "<br />"; 
    }
    grid_div.innerHTML = output;
}
}
还有一个cell类,它有一个mark属性、一个用于显示内容的输出属性和一个setMark方法。因此,如果我单击了由output属性创建的单元格,我将如何引用被单击的单元格


提前谢谢。

我正在考虑这个问题。当然,向每个事件添加一个事件处理程序来获取事件,但是使用诸如xpos和ypos之类的XML属性来获取它在网格中的位置。我只是不确定这是否是最好的方法。那么,我应该在Grid类中调用一个方法来调用Cell[x][y].placeMark或其他什么吗?谢谢你的帮助。我拿到了,效果很好。