<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組織です。
構文 new Function(...) または単に Function(...) で作成された関数の name プロパティは、Firefox と Safari では "anonymous" に設定され、Chrome と Opera では空の文字列に設定されます。このプロパティは Internet Explorer ではサポートされていません。
ソース: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Name
Microsoft の仕様は、http: //msdn.microsoft.com/en-us/library/x844tc74%28v=vs.94%29.aspxで確認できます。
しかし、実際には非標準であり、MS は今回、仕様に従うことを選択しました。