mozilla
您的搜索结果

    Function.name

    非标准
    该特性是非标准的,请尽量不要在生产环境中使用它!

    概述

    name 属性返回所属函数的函数名称.

    描述

    name 属性返回一个函数的名称, 如果是匿名函数, 则返回空字符串:

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

    下面的例子创建了两个匿名函数, 它们的 name 属性都返回空字符串.:

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

    使用语法new Function(...)或者直接 Function(...) 可以创建一个匿名函数, 在Firefox 和 Safari上, 该函数的 name 属性赋值为 "anonymous", 在 Chrome 和 Opera 上,该函数的 name 属性为一个空字符串, IE不支持 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 = {
      // someMethod 属性指向一个匿名函数
      someMethod: function() { }
    };
    
    object.someMethod.name = "someMethod";
    alert(object.someMethod.name); // 弹出空字符串, name属性是只读的.
    

    示例

    你可以使用 obj.constructor.name 来查看一个对象所属的"类"的名称:

    function A() { }
    
    var b = new A();
    
    alert(b.constructor.name); //Alerts "A"
    

    规范

    不在任何规范中.

    浏览器兼容性

    Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
    Basic support (Yes) (Yes) 未实现 (Yes) (Yes)
    Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
    Basic support (Yes) (Yes) (Yes) 未实现 (Yes) (Yes)

     

    文档标签和贡献者

    此页面的贡献者有: ziyunfei, teoli
    最后编辑者: teoli,