<script>
function obj1(){}
alert(obj1.name);
var obj2 = function(){}
obj2.name = 'obj2';
alert(obj2.name=='');
</script>
我已经在Chrome,ff,safari中测试了代码
但是IE9没有这个属性。
问题是我可以在哪里阅读文档以找到所有这种情况?
答案 0 :(得分:0)
Mozilla文档说明了这一点:
name
Non-standard
The name of the function.
因此,它是某些浏览器实现的非标准功能。由于没有标准来规定它应该如何工作,因此浏览器之间的实现可能会有所不同。
参考:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function
Microsoft和Mozilla文档非常完整,您可以在其中任何一个中找到任何标准功能。如果您发现这样的非标准属性,通常只会记录支持它的浏览器。
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