javascript - Javascript 函数定义中的句点 (function window.onload(){})

标签 javascript

<分区>

Possible Duplicate:
JavaScript Function Syntax Explanation: function object.myFunction(){..}

我最近看到了一些(遗留的)javascript 代码,如下所示:

function window.onload(){
  // some code
}

这对我来说看起来不像有效的 javascript,因为您不能在标识符中使用句点,但它似乎在 IE8 中有效。我假设它相当于:

window.onload = function(){}

我在 Chrome 和 IE9 中尝试过相同的代码,但它们都引发了语法异常,所以我认为 IE8 的这个“特性”是一些应该被替换的非标准函数定义是否正确?有问题的代码只发送给 IE 浏览器,所以这可能就是我以前没有遇到过这个问题的原因。

最佳答案

最近浏览器上的Javascript,一般可以引用ECMAScript显然,这在 ECMAScript 中是不允许的:

ECMAScript spec on function definition :

The production FunctionDeclaration : function Identifier ( FormalParameterListopt ){ FunctionBody } [...]

Create a property of the current variable object (as specified in 10.1.3) with name Identifier

SO on valid names (以防万一有人认为“window.onload”是函数的名称,因此应该是 window.window.onload)

关于javascript - Javascript 函数定义中的句点 (function window.onload(){}),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12784639/

相关文章:

javascript - JQuery/infinitescroll 和同位素 - 检查重复项并删除

javascript - YouTube API 'orderby=duration' 不处理整个播放列表,只处理最新的视频

JavaScript 安全性 - 外部人员对 DOM 的访问

javascript - javascript中的标题大小写和缩写

javascript - 不可用的外部资源是否会影响页面加载时间和页面功能?

javascript - jQuery 幻灯片隐藏和显示相同的按钮

javascript - async() 等待返回 Promise 而不是数据

javascript - 除非单击提交按钮,否则离开页面警报

javascript - 如何调试 "SyntaxError: expected expression, got ' ,' "

javascript - 如何避免 ES6 箭头函数的 Flow-type 错误