<script>
function obj1(){}
alert(obj1.name);
var obj2 = function(){}
obj2.name = 'obj2';
alert(obj2.name=='');
</script>
我已经在 Chrome、ff、safari 中测试过代码
但是 IE9 没有这个属性。
问题是我在哪里可以阅读文件来找到所有这些情况?
<script>
function obj1(){}
alert(obj1.name);
var obj2 = function(){}
obj2.name = 'obj2';
alert(obj2.name=='');
</script>
我已经在 Chrome、ff、safari 中测试过代码
但是 IE9 没有这个属性。
问题是我在哪里可以阅读文件来找到所有这些情况?
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 标准,但是它比实现文档要复杂得多。
对于 DOM 中的功能(HTML、CSS、Javscript 接口),是W3C 组织指定标准。
您可以在此处找到 Microsoft 规范:http:
//msdn.microsoft.com/en-us/library/x844tc74%28v=vs.94%29.aspx
但实际上,它是非标准的,MS这次选择遵循规范。
使用语法 new Function(...) 或仅 Function(...) 创建的函数在 Firefox 和 Safari 上将其 name 属性设置为“匿名”,在 Chrome 和 Opera 上设置为空字符串。Internet Explorer 不支持此属性。
来源:https ://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Name