0

我有一个从许多页面多次调用的 Javascript 函数。

在这个函数中,我必须检查调用这个函数的元素。

我知道一种通过函数调用传递“this”的方法。我不能使用那种方法。因为我只在一个模块上工作。还有许多其他模块使用此功能。因此,如果我更改函数定义,它将为其他模块/页面抛出错误。

有没有其他方法可以在不传递“this”或不更改函数定义的情况下找到被调用的元素。

4

2 回答 2

1

你确定它会抛出错误吗?在不传入所有参数的情况下调用 javascript 函数是完全合法的。

传入太多参数也是合法的,您可以使用arguments变量访问它们。

于 2012-09-12T08:28:02.273 回答
1

您不必修改functions签名。您可以传递参数并使用arguments变量访问它们。

例如

<a href="#" onclick='foo()' id='one'>One</a>
<a href="#" onclick='foo(this)' id='two'>Two</a>
<script>
    function foo() {
    if(arguments.length==1)
    {
        alert("Called from element with id "+arguments[0].id);
    }    
    else{
        alert("No element specified")                 
    }
}
</script>

演示

于 2012-09-12T08:33:03.473 回答