Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Function.name

非標準

概要

関数の名前です。

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" とアラート表示

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

タグ: 
 このページの貢献者: ethertank, yyss
 最終更新者: ethertank,