我怎么知道谁是 js 函数的调用方

How can I know who is a caller a js function?

本文关键字:调用 函数 js 我怎么知道      更新时间:2023-09-26

我有一个由按钮调用的方法,由于某种原因我无法修改。

<button onclick="onMyButtonClick()">button1</button>
<button>button2</button>
function onMyButtonClick() {
  // how to know who is a caller?
}

如何知道谁是来电者?

更新:

<button onclick="onMyButtonClick(123)">button1</button>
<button>button2</button>
function onMyButtonClick(a, b) { // b is undefined
  // how to know who is a caller?
}

你可以使用 javascript event。

event.srcElement

为您提供调用函数的 dom 元素。

请参阅此示例:

function onMyButtonClick() {
  alert(event.srcElement.innerHTML);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button onclick="onMyButtonClick()">button1</button>
<button onclick="onMyButtonClick()">button2</button>

请参阅此示例:

arguments.callee.callerevent.target

https://jsfiddle.net/cb3fcbL6/1

this作为参数传递给函数。

.HTML

<button onclick="onMyButtonClick(this)">button1</button>

JavaScript

function onMyButtonClick(button) {
    //button is the DOM element that called the function
}