通常,函数可以像这样访问自身:
(function f() {
console.log(f); // Prints the function definition
}());
但是,当函数 f
有一个也称为 f
的参数时,参数优先:
(function f(f) {
console.log(f); // Prints 1
}(1));
在第二个示例中,当其中一个参数与函数同名时,如何访问该函数?
[此外,我在哪里可以找到说明参数应优先于函数名的文档?]
最佳答案
你不知道。只需遵循这个简单的规则
Don't shadow (or redeclare in a more specific scope) any variable that you want to use.
注意:arguments.callee
将为此工作,但仅限于某些实现。它实际上正在逐步被淘汰,并且很可能在未来完全消失。
关于javascript - 当名称被参数覆盖时函数访问自身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8468068/