js类中获取外部函数名的方法

获取外部函数名指的是在类中获取调用当前类的函数的名称。在JavaScript中,可以通过arguments.callee.caller来获取调用函数的信息,进而获取函数名。

具体步骤如下:

  1. 定义类,并在其中定义一个属性名为callerName的函数。代码如下:
class Test {
    constructor() {
        this.callerName = this.getCallerName();
    }

    getCallerName() {
        return this.constructor.name;
    }

    showCaller() {
        console.log(this.callerName);
    }
}
  1. 在调用该方法时,可以在调用类的函数中通过构造函数名获取调用函数名称。示例代码如下:
function callTest() {
    let t = new Test();
    t.showCaller();
}
callTest(); // 输出"callTest"
  1. 另一种方式是使用arguments.callee.caller.name来获取调用函数名称。示例代码如下:
function callTest2() {
    let t = new Test2();
    t.showCaller();
}

class Test2 {
    constructor() {
        this.callerName = "";
        this.getCallerName();
    }

    getCallerName() {
        if(arguments && arguments.callee && arguments.callee.caller) {
            this.callerName = arguments.callee.caller.name;
        }   
    }

    showCaller() {
        console.log(this.callerName);
    }
}

callTest2(); // 输出"callTest2"

在这个示例中,通过在构造函数中调用getCallerName函数,获取到了arguments.callee.caller.name。如果获取到了,则将其赋值给callerName属性。最终在showCaller函数中输出调用函数名称。

需要注意的是,arguments.callee是一个指向正在执行的函数自身的引用,是一个不稳定的特殊属性。使用arguments.callee.caller可能会引起性能问题或会在未来版本的JavaScript中不再存在。因此,可以通过第一种方式来更加稳定和可靠地获取调用函数名称。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js类中获取外部函数名的方法 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • js利用FileReader读取本地文件或者blob方式

    接下来我将详细讲解使用JavaScript中的FileReader对象来读取本地文件或Blob对象的方法。 FileReader对象简介 FileReader对象是WebAPI中的一个对象,用于读取本地文件中的数据。它提供了一种异步方式来读取文件,并且支持大量的文件类型。我们可以使用FileReader对象将文件读取为文本、DataURL或ArrayBuff…

    JavaScript 2023年5月27日
    00
  • js实现select组件的选择输入过滤代码

    下面我将详细讲解如何实现JS选择输入过滤组件的代码。 1. 需求分析 在编写组件代码之前,我们需要先分析需求,明确自己要实现一个怎样的组件。本次需求分析结果如下: 实现一个类似于<select>标签的输入组件 该组件支持输入过滤功能,可以根据用户所输入的值进行过滤 当用户输入完整的合法选项时,下拉框中会显示匹配该选项的选项值。 2. HTML 结…

    JavaScript 2023年6月11日
    00
  • 一篇文章看懂JavaScript中的回调

    下面我来详细讲解“一篇文章看懂JavaScript中的回调”的完整攻略。 1. 了解回调函数的概念 回调函数,就是将一个函数作为参数传递给另外一个函数,以便当这个函数完成时,将结果返回给原来传递的函数。 我们可以通过以下方式来定义一个回调函数: function callback(param) { console.log(param); } 2. 核心应用场…

    JavaScript 2023年6月11日
    00
  • php+ajax+json 详解及实例代码

    下面是关于PHP+AJAX+JSON的详细讲解及实例代码的攻略。 PHP+AJAX+JSON 详解 什么是AJAX AJAX全称为Asynchronons JavaScript and XML,是基于前端技术的一种异步交互方式。在AJAX出现之前,前端页面与服务端的交互方式主要是通过页面跳转、表单提交等方式。而AJAX则可以使得前端页面在不进行整个页面刷新的…

    JavaScript 2023年5月27日
    00
  • JavaScript 操作符

    JavaScript 操作符/运算符 在 JavaScript 中,有一些操作符可以使代码更简洁、易读和高效。以下是一些常见的操作符: 1、可选链操作符(optional chaining operator) ?.是可选链操作符(optional chaining operator)。?. 可选链操作符用于访问可能为空或未定义的属性或方法,它允许我们安全地访…

    JavaScript 2023年4月19日
    00
  • 详谈JS中数组的迭代方法和归并方法

    详谈JS中数组的迭代方法和归并方法 什么是迭代方法? 在JavaScript中,迭代方法是一种对数组进行操作的函数,在数组中迭代每一个元素并执行指定的操作,最终返回一个新的数组或其他值。常见的迭代方法有forEach()、map()、filter()、some() 和 every() 等。 示例 1:forEach() forEach() 方法用于遍历每个元…

    JavaScript 2023年5月27日
    00
  • javascript控制台详解

    Javascript控制台详解 什么是Javascript控制台 Javascript控制台是浏览器(如Chrome、Firefox、Safari等)自带的开发工具,它可以让开发者在开发和调试网页时,查看和修改网页的代码和样式,并且可以运行Javascript代码,方便开发者定位和解决问题。 如何打开Javascript控制台 打开Javascript控制台…

    JavaScript 2023年5月17日
    00
  • JS运动特效之同时运动实现方法分析

    JS运动特效之同时运动实现方法分析 在JavaScript中,同时运动指的是在同一时间内对一个元素的多个属性进行变换,以实现连续的动画效果。同时运动可以使页面动效更加美观,提升用户体验。本文将详细介绍同时运动的实现方法。 基本思路 同时运动的基本思路是通过定时器对元素的不同属性进行不断的增减,达到动画效果。 实现方法 同时运动的实现方法一般有两种: 1. 多…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部