gpt4 book ai didi

javascript - js 中有线程(某种)变量吗?

转载 作者:行者123 更新时间:2023-11-27 23:05:48 25 4
gpt4 key购买 nike

我不知道如何调用它们,所以我将它们称为线程。我所说的线程是指当您按下一个按钮来触发一系列 js 代码执行时,即一个线程。如果再次按下该按钮,则会出现来自同一位置的新线程。所以基本上这种连续的执行是由从开始到结束的任何事情启动的。

好吧,我想做的是确定线程来自哪里和/或它在哪里。例如,代码可能如下所示:

button A -> function 1 -> function 2

或者这个:

button B -> function 3 -> function 1 -> function 2

它们最终都在同一个地方,并且所涉及的任何数据都至少经过部分相同的处理。我在函数 2 中试图找出该线程的来源,它是来自按钮 A 还是按钮 B?或者一起在另一个地方?

我知道如何做的一种方法是这样做:

<input type="button" value="A" onclick="this.from = 'button A'; function1();">

function1() {
function2();
}

function2() {
console.log(this.from);
}

由于它在整个线程中传播,因此我可以向其附加一些内容,例如属性“from”。然而,在我的例子中,线程需要遍历一些改变this的函数,例如

this.objectMemberFunc = function() {}.bind(this);

并且属性(property)丢失了。尽管我到处都使用 .bind(this) ,但我不知道它实际上是如何工作的,我只知道它使 this 引用我正在其中创建这些函数的对象实例.有些东西告诉我,我也许可以使用绑定(bind)来发挥我的优势,那么我如何使用它来将属性附加到我的线程呢?

最佳答案

我在函数 2 中试图找出该线程的来源,它是来自按钮 A 还是 B? 您可以将一个事件传递给你的职能

document.getElementById('btnA').addEventListener('click', doSomething, false);
document.getElementById('btnB').addEventListener('click', doSomething, false);

function doSomething(e){
alert(e.target.id)
}
<button id="btnA">Click A</button>
<button id="btnB">Click B</button>

然后您将能够识别按下了哪个按钮。

谢谢

关于javascript - js 中有线程(某种)变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36593644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com