如何在不重写Javascript中的其他实例的情况下创建函数的新实例?

时间:2015-06-16 02:26:31

标签: javascript

这是我的代码:

<tbody>
<?php while ($partidos = mysqli_fetch_array($sql)) { ?>
    <tr>
        <td class="center"><?php echo $partidos['fecha']; ?></td>
        <td><?php $participante = explode("₋", $partidos['jugadores']);
            $participante1 = trim($participante[0]);
            $participante2 = trim($participante[1]);

            echo trim($participante1) . "<br>vs<br>" . trim($participante2);
            ?></td>
        <td><?php if ($partidos['estado'] == 0) { ?> En Curso<?php } elseif ($partidos['estado'] == 1) {
                if ($partidos['alerta'] == 0) { ?> Terminado<?php } else { ?>Terminado - Error <i
                    class="fa fa-exclamation-triangle"></i><?php }
            } ?></td>
        <td><?php if ($partidos['alerta_medica'] == 1) { ?> Si <i class="fa fa-2 fa-medkit"
                                                                  style="color:#C00;"></i><?php } else { ?> No<?php } ?>
        </td>
        <?php if ($_SESSION['tipo'] == 1 || $_SESSION['tipo'] == 2) { ?>
            <td class="center">
            </td>
        <?php } ?>
    </tr>
<?php } ?>
</tbody>

它检查函数的实例是否已经运行。我错过了一些明显的东西。它是什么?

这是一个小提琴:http://jsfiddle.net/ekoo6pef/

检查控制台。

这是输出:

    function wasCalled() {
        if (typeof (called) === "undefined") {
            console.log("This is the first time this instance runs")
            called = true
        }
        else {
            console.log("this is not really a new instance")
        }
    }
    a = new wasCalled()
    b = new wasCalled()

我希望得到这个实例第一次运行&#34;对于这两个电话。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

问题是,当您将变量called创建为全局变量(因为您没有使用var called声明)时,它会存储您函数的下一次调用的状态(并且,你看到第二次通话中的差异了)