可能重复:
JavaScript Function Syntax Explanation: function object.myFunction(){..}
我最近看到了一些(遗留的)javascript代码,如下所示:
function window.onload(){
// some code
}
这对我来说看起来不像是有效的javascript,因为你不能在标识符中有句号,但它似乎在IE8中有效。我认为这相当于:
window.onload = function(){}
我在Chrome和IE9中尝试了相同的代码并且它们都引发了语法异常,所以我认为IE8的这个“特性”是一些应该被替换的非标准函数定义吗?有问题的代码只发送到IE浏览器,所以这可能是我之前没有遇到过这个问题的原因。
答案 0 :(得分:2)
对于最近浏览器上的Javascript,您通常可以参考ECMAScript,但显然,ECMAScript中不允许这样做:
ECMAScript spec on function definition:
生产FunctionDeclaration:function Identifier( FormalParameterListopt){FunctionBody} [...]
创建当前变量对象的属性(如 10.1.3)名称标识符
SO on valid names(以防万一有人会认为“window.onload”是函数的名称,因此会window.window.onload
)
答案 1 :(得分:0)
您可以使用以下语法定义 new 函数:
function myFunc(args)
{
...
}
window.onload
函数由浏览器定义,可能是null
。句点表示onload
值是window
对象的成员。以下语法将使用函数并将其分配给onload
成员的值:
window.onload = function()
{
...
};
不要忘记尾随分号,因为这是一个赋值语句。