0
<script>
    function obj1(){}
    alert(obj1.name);

    var obj2 = function(){}
    obj2.name = 'obj2';
    alert(obj2.name=='');

</script>

我已经在 Chrome、ff、safari 中测试过代码

但是 IE9 没有这个属性。

问题是我在哪里可以阅读文件来找到所有这些情况?

4

3 回答 3

0

Mozilla 文档是这样说的:

name
  Non-standard 
  The name of the function.

因此,这是一些浏览器实现的非标准功能。由于没有标准来规定它应该如何工作,因此浏览器之间的实现可能会有所不同。

参考:https ://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function

MicrosoftMozilla文档非常完整,您可以在其中找到任何标准功能。如果您发现这样的非标准属性,通常只会为支持它的浏览器记录它。


Javascript 语言的权威资源当然是EcmaScript ECMA-262 标准,但是它比实现文档要复杂得多。

对于 DOM 中的功能(HTML、CSS、Javscript 接口),是W3C 组织指定标准。

于 2012-05-25T10:04:44.753 回答
0

您可以在此处找到 Microsoft 规范:http:
//msdn.microsoft.com/en-us/library/x844tc74%28v=vs.94%29.aspx

但实际上,它是非标准的,MS这次选择遵循规范。

于 2012-05-25T10:06:27.313 回答
0

使用语法 new Function(...) 或仅 Function(...) 创建的函数在 Firefox 和 Safari 上将其 name 属性设置为“匿名”,在 Chrome 和 Opera 上设置为空字符串。Internet Explorer 不支持此属性。

来源:https ://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Name

于 2012-05-25T10:09:02.753 回答