我认为自己能够合理地使用JavaScript并熟悉实现相同功能的许多不同方法。但今天我遇到了一些我以前从未见过的函数语法:
function document.body.onload()
{
alert('loaded');
}
如果我要编写这样的代码,我会这样做:
document.body.onload = function()
{
alert('loaded');
}
忽略这不是处理onload
事件的最佳方式,这实际上是有效的JavaScript吗?它似乎导致FireFox(和JSLint)中的语法错误,所以我猜它只是Internet Explorer的语法?如果它只是IE浏览器,那么我想删除它,但我担心它可能会产生一些古怪的副作用。
答案 0 :(得分:10)
function document.body.onload
是非标准的JavaScript语法。使用第二种格式,并解雇任何人编写原始代码。
}
后的分号
document.body.onload = function () {
...code...
}; //this is easy to miss
答案 1 :(得分:1)
不,它无效。 function X() {}
变体要求函数的名称只包含字母,数字,'$'和'_'。
如果您想查看其他语法,可以get the standard here,但JavaScript: The Good Parts后面的语法图表更容易理解。