[Javascript] MetaProgramming: function name

Each function should have a ‘name‘ property. It can be anonymous, empty, the same as function name, or class name.

For example:

const foo = function(){}
console.log(foo.name); //foo
function(){ .. });                 // name:
(function*(){ .. });                // name:
window.foo = function(){ .. };      // name:

class Awesome {
    constructor() { .. }            // name: Awesome
    funny() { .. }                  // name: funny
}
var c = class Awesome { .. };       // name: Awesome

var o = {
    foo() { .. },                   // name: foo
    *bar() { .. },                  // name: bar
    baz: () => { .. },              // name: baz
    bam: function(){ .. },          // name: bam
    get qux() { .. },               // name: get qux
    set fuz() { .. },               // name: set fuz
    ["b" + "iz"]:
        function(){ .. },           // name: biz
    [Symbol( "buz" )]:
        function(){ .. }            // name: [buz]
};

export default function() { .. }    // name: default

var y = new Function();             // name: anonymous
var GeneratorFunction =
    function*(){}.__proto__.constructor;
var z = new GeneratorFunction();    // name: anonymous
时间: 2024-08-06 08:42:26

[Javascript] MetaProgramming: function name的相关文章

javascript的Function 和其 Arguments

http://shengren-wang.iteye.com/blog/1343256 javascript的Function属性:1.Arguments对象2.caller 对调用单前函数的Function的引用,如果是顶层代码调用, 则返回null(firefox返回undefined). 注:只有在代码执行时才有意义3.length 声明函数是指定的命名参数的个数(函数定义是,定义参数的个数)4.prototype 一个对象,用于构造函数,这个对象定义的属性和方法 由构造函数创建的所有对象

JavaScript获取Function的名字

如何获取JavaScript中Function的名字是一个很基本的问题.可以通过将function转化成字符串,用substring取它的名字,或者使用ECMAScript 6中的Function.name的支持.此属性只有在IE下有可能不兼容.详见MDN. 关于从字符串中获得其名字的方法如下 (转自stackoverflow): function functionName(fun) { var ret = fun.toString(); ret = ret.substr('function '

Javascript使用function创建类的两种方法

1.使用function类 //myFunction.js var CMyFunc=function() { //类的公共方法,供外部调用 this.Func1=function() { var i=0; return i; } this.Func2=function() { _privateFunc(); } //类中的私有方法,供公共方法调用 function _privateFunc() { return 0; ] } CMyFunc myFunc=new CMyFunc(); 使用:其它

javaScript之function定义

背景知识 函数定义 在javaScript中,function的定义有3种: 1.匿名定义                function(){} 2.非匿名定义                function fn(){}                fn = new Function(); 触发函数执行 对于匿名函数:                        (function(){})();       //执行一个匿名函数                        var f

javascript 之Function对象的apply(),call(),bind(),方法和arguments,caller,length属性

注:这篇文章原文:http://www.jb51.net/article/30883.htm 自己作为学习,重新写写. 一.写在前面的话 前端javascript编程还只是略懂皮毛,DOM知道一点,jquey会用一点点,深知夯实基础,了解前端的系统的知识对于web开发(自己主要做的是PHP后台的开发)的重要.固然,要用什么,就查什么(现学现卖)很合理,但对于长远来讲,只是在隔靴捎痒,很难有实际的作为. 故,痛定思痛,应该对web前端,尤其是 javascript开发(过程式-->面向对象-->

javascript中(function($){...})(jQuery)写法是什么意思

在javascript中 (function($){...})(jQuery)的写法是什么意思. ======================================================================   //这是一条分割线. 首先 function(arg){ //.... } 这种形式的在javascript中称之为匿名函数.arg则是匿名函数的参数. 而(function($){ })(jQuery);这种形式则是执行匿名函数并且传递参数jQuery.

JavaScript Nested Function 的时空和身份属性

JavaScript 的function 不仅仅是一等公民,简直就是特殊公民.它有许多独特的特征: 1) 它是object,可以存储,传递,附加属性. 2) 它可以有lexical closure, 是事件处理,和OOP encapsulation 的方便工具. 3) 它可以匿名,然后通过变量名或者依附于一个object 的 property来被调用 4) 它有多种“被定义”方式:可以通过function statement, function expression, new, Function

Javascript中Function declarations 理解

首先来看一段代码: 1.f = function() {return true;}; 2.g = function() {return false;}; 3.(function() { 4. if (g() && [] == ![]) { 5. f = function f() {return false;}; 6. function g() {return true;} 7. } 8.})(); 9.console.log(f()); 理解上面这段code有几个关键点: 第4行code的

javascript中function和object的区别,以及javascript如何实现面向对象的编程思想.

1 <!DOCTYPE html> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 5 <title></title> 6 <script language="