更新:
感谢 @行列[xxooyy] 给了一个更加精简的方法实现:

String.prototype.toFunction=function(){ return eval('('+this+')')};
//重点在'('和')'
String.prototype.toFunction = function () {var fnString = this.toString();var preRs = "^function\\s*[a-zA-Z]*?\\([\\s\\S]*?\\)\\s*\\{";var endRs = "\\}$";var argRs = "^function\\s*[a-zA-Z]*?\\(|\\)\\s*\\{|\\s*";var preReg = new RegExp(preRs, 'i');var endReg = new RegExp(endRs);var argReg = new RegExp(argRs, 'g');var preEndReg = new RegExp(preRs + '|' + endRs, 'gi');if (preReg.test(fnString)) {var preEnd = fnString.match(preEndReg);var fnArguments = preEnd[0].replace(argReg, '').split(',');var fnBody = fnString.replace(preEndReg, '');var fn = new Function(fnArguments, fnBody);return fn;} else {return fnString;}
}'function (a) { console.log(a); }'.toFunction();
//function anonymous(a) { console.log(a); }

方法很笨拙,不知道有没有大神给改改的,或者有什么可替换的系统方法。
https://jsfiddle.net/jsoncode...

总结一行神奇的代码:

var fn = function (){};
new Function('return '+Function.prototype.toString.call(fn));
//会还原到fn

fn有toString方法,string没有toFunction方法,自定义一个toFunction方法相关推荐

  1. java方法参数类型不确定_一个Java方法能有多少个参数类型?这个好奇coder做了个实验...

    选自 justinblank 机器之心编译 参与:李志伟.张倩 在 JVM 中,一个 Java 方法,最多能定义多少参数呢?这是一个很无聊的问题,即使能定义一万个,十万个,谁又会真的去这么做呢.但是作 ...

  2. android view使用方法,Android View构造方法第三参数使用方法详解

    我们都知道,在Android中要使用一个View,一般会有两种方式: 在XML文件中配置: 直接在代码中new一个View的对象. 我们今天讨论的内容就是围绕着View的构造方法的. 1.实例 首先我 ...

  3. C# 中的多态和虚方法,如何实现多态和使用虚方法?

    在 C# 中,多态(Polymorphism)是面向对象编程的基本特性之一,它允许使用不同的对象和方法来执行同一操作.C# 中实现多态的方式主要是通过虚方法和抽象类. 虚方法是一种允许子类覆盖的方法, ...

  4. java string 属性_String类型的属性和方法

    前面的话 前面已经介绍过字符串String类型的基本知识,本文将介绍String类型的属性和方法 属性 字符串String类型的每个实例都有一个length属性,表示字符串中的字符个数.由于字符串是不 ...

  5. c语言怎样在不足n位数的整数前补0,C# String 前面不足位数补零的方法

    int i=10;方法1:Console.WriteLine(i.ToString("D5"));方法2:Console.WriteLine(i.ToString().PadLef ...

  6. 【java基础18:方法覆盖与多态】什么时候使用方法覆盖 toString方法的覆盖 多态的基础语法与作用 向上/向下转型

    目录 方法覆盖Override 多态 方法覆盖Override 方法覆盖初体验,什么样的程序要方法覆盖 /*当前程序存在的问题(设计上的问题)??鸟儿在执行move()方法的时候,最好输出的结果是:& ...

  7. Python编程基础:第三节 字符串方法String Methods

    第三节 字符串方法String Methods 前言 实践 前言 本节我们一起来学习一些常用的字符串方法,包括计算字符串长度,获取某个字母的位置等等. 实践 假设你有一个名为name的变量,且其取值为 ...

  8. Java 分割字符串的方法String.split()底层原理

    文章目录 1.举例说明 2.split源码分析 3.API原解 4.regex参数API原解 5.limit参数介绍 6.结果的验证 7.此方法的使用 1.举例说明 (例子来自于博主:https:// ...

  9. 获取顺序容器vector,deque,string和array的首尾元素的方法有四个

    获取顺序容器vector,deque,string和array的首尾元素的方法有四个: (1)迭代器 (2)下标 (3)front() 和 back()成员函数 (4)at()成员函数 如下所示,得到 ...

最新文章

  1. 最新 Windows 7 7100安装
  2. C++源码的调用图生成
  3. 【安全漏洞】一次前台任意文件下载漏洞挖掘
  4. #1049 : 后序遍历(二叉树,DFS)
  5. mysql 生成日历表_如何在SQL中创建100年的日历表
  6. Mysql学习总结(57)——MySQL查询当天、本周、本月、上周、本周、上月、距离当前现在6个月数据
  7. 自治系统中单个路由表的构造
  8. PHP设计模式——装饰器模式
  9. android控件触摸事件传递,Android事件传递处理
  10. 功夫小子实践开发-开发环境的基本搭建和配置
  11. java synchronized 卖票_Java通过卖票理解多线程
  12. 卡盟主站搭建_搭建卡盟主站下载|搭建卡盟主站教程 (附带源码)百度云_ - 极光下载站...
  13. python a bytes-like_用re模块处理bytes-like对象
  14. java 中常用英语_java中常用英语
  15. 使用Cronjobs的综合指南
  16. c++、python实现置换密码(栅栏技术,列置换)、替代密码(加法密码(Caesar密码),乘法密码)
  17. 2023上海面料展览会
  18. 龙年的喜洋洋真的很烂
  19. 软件测试分享15个适合练手的项目【金融/银行/商城/电商/医药......】
  20. 8080汇编手册数据传输指令

热门文章

  1. igmpproxy_IGMP proxy开发笔记 | 学步园
  2. php friso,php binding 不兼容php7
  3. oracle建共享dblink,oracle建多个dblink
  4. printf 重新实现put_Go 实现海量日志收集系统(四)
  5. java中介者模式例子_Java中介者模式(Mediator Pattern)
  6. mysql建表后添加约束_MYSQL建表完成之后添加约束
  7. go去掉最后一个字符_Go:字符串操作
  8. python 多进程 内存增长_python 多进程 内存 copy-on-write
  9. git rebase 合并中间的提交
  10. SpringBoot POM web开发(spring-boot-starter-web)