mozilla
Your Search Results

    Function.name リダイレクト 2

    非標準

    概要

    関数の名前です。

    Function オブジェクトのプロパティ
    実装されたバージョン JavaScript ?
    ECMAScript エディション None

    説明

    name プロパティは関数の名前、または無名関数に対して空文字を返します:

    function doSomething() { }
    
    alert(doSomething.name); // alerts "doSomething"

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

    以下の例では無名関数を作成していますので、name は空文字を返します:

    var f = function() { };
    var object = {
      someMethod: function() {}
    };
    
    alert(f.name == ""); // true
    alert(object.someMethod.name == ""); // こちらも true

    関数式 で、name を持つ関数を定義することができます:

    var object = {
      someMethod: function object_someMethod() {}
    };
    
    alert(object.someMethod.name); // "object_someMethod" とアラート表示
    
    try { object_someMethod } catch(e) { alert(e); }
    // ReferenceError: object_someMethod is not defined

    このプロパティは読み取り専用であり、関数の name を変更することはできません:

    var object = {
      // anonymous
      someMethod: function() { }
    };
    
    object.someMethod.name = "someMethod";
    alert( object.someMethod.name ); // 空文字、someMethod は名前がありません

    オブジェクトの "クラス" を確認するために、obj.constructor.name を用いることができます:

    function a() { }
    
    var b = new a();
    
    alert(b.constructor.name); // "a" とアラート表示

    ドキュメントのタグと貢献者

    Contributors to this page: ethertank
    最終更新者: ethertank,