函数对象的名称属性是什么?

时间:2012-05-25 10:01:08

标签: javascript

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

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

</script>

我已经在Chrome,ff,safari中测试了代码

但是IE9没有这个属性。

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

3 个答案:

答案 0 :(得分: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 standard,但是阅读比实现文档要复杂得多。

对于DOM(HTML,CSS,Javscript界面​​)中的一个特性,它是指定标准的W3C organisation

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

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