根据需要覆盖Javascript函数变量

时间:2012-02-16 00:00:21

标签: javascript function variables javascript-events scope

我的问题与能够覆盖函数中声明的变量有关,而不是在函数的每次调用时都没有。这是我的解释:

假设我在加载页面时有三个HTML元素:

<div id="1"></div>
<div id="2"></div>
<div id="3"></div>
<div id="4"></div>

然后我运行一个javascript函数来操作这些元素并将函数应用于“onmousemove”事件。在函数调用期间,有一个声明的变量,不应该被覆盖,以保持变量值对元素唯一(否则鼠标移动将被覆盖,并且只适用于最后一个元素)。我知道这可以通过声明局部变量来实现。

我的问题是下一部分:

在完成所有操作之后,我在页面上有其他事件触发初始函数在最初运行的同一元素上再次运行,但具有不同的值,现在必须覆盖原件。我会发布代码,但它是几千行代码,所以我希望你们都明白我在说什么。

我认为我可以通过复制函数和以不同方式声明变量来解决这个问题,但这意味着要拥有一大块代码的两个副本,这在我看来并不是一个好主意,我想避免这一点。

谢谢!

1 个答案:

答案 0 :(得分:0)

所以我想出了如何实现我想要的。我将代码重新编写为Objects。当我最初运行代码时,每个元素都有自己的对象,其中包含一个变量全局变量(window [element +'obj']),它使用原型方法操作元素,这使得每个元素值保持独立,然后当我需要覆盖值时一个特定的元素,我调用一个方法来重置该对象的所有值。我将尝试稍后为遇到此问题的任何人发布一些示例代码。

谢谢!