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日

相关文章

  • JavaScript判断一个字符串是否包含指定子字符串的方法

    JavaScript提供了多种方法来判断一个字符串是否包含指定的子字符串。在下面的介绍中,将逐一介绍这些方法并附带示例说明。 方法一:使用indexOf方法 JavaScript中的字符串对象提供了一个indexOf方法,该方法可以用于判断一个字符串是否包含指定的子字符串。该方法返回一个数字值,表示指定的子字符串在原字符串中第一次出现的位置。如果未找到该子字…

    JavaScript 2023年5月28日
    00
  • js实现prototype扩展的方法(字符串,日期,数组扩展)

    下面我将详细讲解一下“js实现prototype扩展的方法(字符串,日期,数组扩展)”的完整攻略。 什么是prototype 在 JavaScript 语言中,每个对象都可以拥有一个 prototype 属性,用于指向其原型对象。原型对象是一个普通的对象,它包含了该对象的共有属性和方法。这个原型对象本身也可以有其自己的原型,构成了原型链,从而实现了 Java…

    JavaScript 2023年5月28日
    00
  • 原生javascript实现的一个简单动画效果

    首先,需要明确什么是动画效果:动画是指将元素从一种状态平滑地转换到另一种状态的过程。在 Web 开发中,我们通常使用动画来提升用户体验,比如当用户鼠标移到一个按钮上时,按钮的背景色逐渐变亮。 原生JavaScript能够自如地控制DOM元素,因此我们可以使用它实现简单的动画效果。具体步骤如下: 设置初始状态和目标状态 首先需要定义元素的初始状态和目标状态。比…

    JavaScript 2023年6月10日
    00
  • JavaScript实现的select点菜功能示例

    下面是JavaScript实现的select点菜功能示例的完整攻略: 概述 在Web开发中,经常需要实现一些具有选择性质的功能,比如点菜、物品选择等。这时候我们可以使用select元素结合JavaScript来实现。 HTML结构 首先,我们需要在HTML中定义一个select元素,用于用户选择不同的选项。具体代码如下: <select id=&quo…

    JavaScript 2023年6月10日
    00
  • js刷新框架子页面的七种方法代码

    让我们开始吧。 1. 使用location.reload()方法 使用location.reload()方法可以重新加载当前页面,包括全部资源(例如JS、CSS、图片等)。将该方法应用到一个窗口的iframe子框架中,即可实现刷新子页面的效果。 window.frames["frame_name"].location.reload(); …

    JavaScript 2023年6月11日
    00
  • JS中如何比较两个Json对象是否相等实例代码

    在JS中比较两个JSON对象是否相等,可以使用深度比较(deep comparison)算法。这是一种递归地比较对象的方式,直到找到两个属性的值不同为止。 以下是比较两个JSON对象的完整攻略: 步骤1:编写比较函数 以下是一个比较两个JSON对象的函数: function compareJSON(obj1, obj2) { // Check if both…

    JavaScript 2023年5月27日
    00
  • 常见的浏览器存储方式(cookie、localStorage、sessionStorage)

    下面就来详细讲解一下常见的浏览器存储方式。 1. Cookie 1.1 什么是Cookie Cookie是一种存储在用户计算机上的小型文本文件,它存储了网站的一些信息,并且可以被后续的网页访问。通常用来存储用户的个人偏好设置或者登录状态等信息。 1.2 Cookie的使用 1.2.1 设置Cookie 在JavaScript中设置Cookie可以使用docu…

    JavaScript 2023年6月11日
    00
  • jquery教程ajax请求json数据示例

    下面是详细的攻略内容: jQuery教程:ajax请求json数据示例 简介 在现代网页开发中,经常需要从服务器动态地获取数据并实时展示到页面上。而Ajax技术则是实现这一目标的重要手段之一,jQuery作为一个广泛使用的Javascript库,封装了非常方便的Ajax请求操作。 本教程主要介绍如何使用jQuery实现Ajax请求,获取json格式的数据,并…

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