我见过几个带有传递参数的 java 脚本函数的示例,这些函数不在脚本中,而是隐式传入的。例如:
function myFunction(xml) {
var xmlDoc = xml.responseXML;
document.getElementById("demo").innerHTML =
xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue;
}
“xml”在哪里定义或列出?在哪里可以找到其他隐式参数的列表?
我还看到了一个具有以下功能的函数:
$("body").click(function (event) {
// Do body action
var target = $(event.target);
if (target.is($("#myDiv"))) {
// Do div action
}
});
“事件”来自或列出在哪里?
提前致谢。
最佳答案
这些变量称为(函数)参数。这是大多数编程语言的共同特征。它们是用函数定义的,并且仅充当函数内定义的变量。它们之前不需要在函数外部定义,因为它们只为函数而存在。
我相信您会感到困惑,因为它们没有用 var
声明(因为它们不应该如此),因为您称它们为“隐式变量”。然而,它们并不是隐含的;它们是用函数定义的。
如果您使用的是 jQuery 等库,则可以通过查看函数的文档来找到函数的参数。例如,.click()
函数处理程序的定义如下:
(如果看不到图像,则会显示 .click(handler)
,其中 handler
的类型为:Function(Event事件对象)
)
如您所见,它定义了函数参数eventObject
,您可以在调用函数时“传递”该参数。您可以使用任何有效的变量名称来执行此操作。
您可以看到this MDN documentation有关参数的更多信息。
关于javascript 隐式函数变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41449482/