我有一个从许多页面多次调用的 Javascript 函数。
在这个函数中,我必须检查调用这个函数的元素。
我知道一种通过函数调用传递“this”的方法。我不能使用那种方法。因为我只在一个模块上工作。还有许多其他模块使用此功能。因此,如果我更改函数定义,它将为其他模块/页面抛出错误。
有没有其他方法可以在不传递“this”或不更改函数定义的情况下找到被调用的元素。
我有一个从许多页面多次调用的 Javascript 函数。
在这个函数中,我必须检查调用这个函数的元素。
我知道一种通过函数调用传递“this”的方法。我不能使用那种方法。因为我只在一个模块上工作。还有许多其他模块使用此功能。因此,如果我更改函数定义,它将为其他模块/页面抛出错误。
有没有其他方法可以在不传递“this”或不更改函数定义的情况下找到被调用的元素。
你确定它会抛出错误吗?在不传入所有参数的情况下调用 javascript 函数是完全合法的。
传入太多参数也是合法的,您可以使用arguments
变量访问它们。
您不必修改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>