分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

node.js ?在函数内获取当前函数

发布时间:2023-09-06 01:30责任编辑:白小东关键词:js

js 如何在函数体内部知道 自己在哪个函数内运行呢?

打比方:

function a() { ???// 我想在这里知道我的函数名a和函数function a () {...}}

使用Error的调用栈可以匹配到当期执行的函数:

// ???获取正在执行的函数function getExecFunction() { ???let names = new Error().stack.match(/at (.*?) /g); ???let name = names[1].replace(‘at ‘, ‘‘).trim(); ???return eval(name);}

Use Ex:

function a() { ???console.log(getExecFunction());}function getExecFunction() { ???let names = new Error().stack.match(/at (.*?) /g); ???let name = names[1].replace(‘at ‘, ‘‘).trim(); ???return eval(name);}a(); ???????//[Function: a]

如果是在class内部,可以这么写(代码基于ES6):

class A { ???// 获取正在执行的函数 ???getExecFunction() { ???????let names = new Error().stack.match(/at A\.(.*?) /g); ???????let name = names[1].replace(‘at A.‘, ‘‘).trim(); ???????return eval(`this.${name}`); ???} ???a() { ???????console.log(this.getExecFunction()); ???}}new A().a(); ???// ???[Function: a]

如有错误,请指正,感谢。

node.js ?在函数内获取当前函数

原文地址:http://www.cnblogs.com/shenshangzz/p/8044650.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved