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

構文 new Function(...) または単に Function(...) で作成された関数の name プロパティは、Firefox と Safari では "anonymous" に設定され、Chrome と Opera では空の文字列に設定されます。このプロパティは Internet Explorer ではサポートされていません。

ソース: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Name

于 2012-05-25T10:09:02.753 に答える
0

Microsoft の仕様は、http: //msdn.microsoft.com/en-us/library/x844tc74%28v=vs.94%29.aspxで確認できます。

しかし、実際には非標準であり、MS は今回、仕様に従うことを選択しました。

于 2012-05-25T10:06:27.313 に答える