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

yizhihongxing

获取外部函数名指的是在类中获取调用当前类的函数的名称。在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日

相关文章

  • ES6(ECMAScript 6)新特性之模板字符串用法分析

    ES6(ECMAScript 6)新特性之模板字符串用法分析 1. 模板字符串的概念 模板字符串是ES6(ECMAScript 6)中的一项新特性,用来处理复杂的字符串拼接操作。它使用反引号字符 (`) 来表示字符串,可以直接在字符串中插入变量和表达式。 2. 模板字符串的基本用法 2.1 普通字符串的拼接 在使用模板字符串之前,我们可以先来了解一下普通字符…

    JavaScript 2023年5月28日
    00
  • Javascript Math LOG2E 属性

    JavaScript中的Math.LOG2E属性是一个常数,表示以2为底的自然对数e的对数。以下是关于Math.LOG2E属性的完整攻略,包括两个示例。 Math对象的LOG2属性 JavaScript Math对象中的LOG2E属性是一个常数,表示以2为底的自然数e的对数。 下面是LOG2E属性语法: Math.LOG2E 下面是一个LOG2E属性的示例:…

    JavaScript 2023年5月11日
    00
  • JavaScript function函数种类详解

    JavaScript Function函数种类详解 JavaScript是一门非常强大的脚本语言,其中函数是最重要的部分之一。函数是用于执行特定任务的代码块,它接收输入并返回输出。JavaScript中的函数有多种种类。在这里,我们将详细探讨不同函数种类的特点和用法,并提供一些示例。 函数定义 在JavaScript中,定义函数有两种方法:函数声明和函数表达…

    JavaScript 2023年5月27日
    00
  • JavaScript实现自动生成网页元素功能(按钮、文本等)

    让我们来详细讲解一下“JavaScript实现自动生成网页元素功能(按钮、文本等)”的完整攻略。 1. 需求分析 要实现自动生成网页元素功能,首先需要明确我们的需求和目标。我们的目标是在用户输入指定的元素类型和数量后,自动生成对应的HTML元素,比如按钮、文本输入框等。可以参考以下的需求分析: 需要一个表单,供用户填写元素类型和数量。表单设计可以参考以下样式…

    JavaScript 2023年6月10日
    00
  • javascript利用正则快速找出两个字符串的不同字符

    JavaScript利用正则表达式可以快速找出两个字符串的不同字符,具体的步骤如下: 首先将两个字符串的长度进行比较,以较短的字符串长度为基准。 对两个字符串进行遍历,比较对应字符是否相等,如果不相等,就将差异字符记录下来。 利用正则表达式去重,即将记录下来的差异字符进行去重操作。 下面是两个示例说明: 示例1: function findDifferent…

    JavaScript 2023年5月28日
    00
  • js将json格式内容转换成对象的方法

    当我们从后端接受到数据时,很多时候这些数据是以JSON格式的字符串呈现的,但是如果我们要操作这些数据,就需要将其转换成JavaScript的对象来进行操作。下面是将JSON格式内容转换成对象的方法的完整攻略: 1. 使用JSON.parse()方法 JSON.parse()方法可以将JSON格式的字符串转换为JavaScript的对象,其语法如下: let …

    JavaScript 2023年5月27日
    00
  • 从面试题学习Javascript 面向对象(创建对象)

    很高兴能够为你详细讲解“从面试题学习Javascript 面向对象(创建对象)”的完整攻略。下面我将为你提供详细的自学指导及相关示例。 学习Javascript面向对象的创建对象 了解Javascript中对象的创建方式 在Javascript中,有多种创建对象的方式,包括: 对象字面量语法 构造函数 Object.create方法 工厂函数等 在学习创建对…

    JavaScript 2023年5月27日
    00
  • JS中BOM相关知识点总结(必看篇)

    那我来给您讲解一下。 JS中BOM相关知识点总结(必看篇) BOM是浏览器对象模型(Browser Object Model)的缩写,是JavaScript与浏览器之间的交互接口,通过它可以获取和操作浏览器的窗口、框架、历史记录等信息。下面是JS中BOM的相关知识点总结: 1. window对象 window对象是指浏览器打开的窗口,它是BOM中的顶层对象。…

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