js中有线程(种类)变量吗?

时间:2016-04-13 09:09:35

标签: javascript

我不知道该怎么称呼这些,所以我称之为线程。我对线程的意思是当你按下一个触发js代码执行链的按钮时,即一个线程。如果再次按下该按钮,则是来自同一位置的新线程。所以基本上这个连续的执行是从开始到结束的任何事情发起的。

好的,我试图做的是确定线程来自何处和/或它来自何处。例如,代码可能如下所示:

  

按钮A - >功能1 - >功能2

或者这个:

  

按钮B - >功能3 - >功能1 - >功能2

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

我知道如何做到这一点:

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

function1() {
    function2();
}

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

因为这遍历整个帖子,我可以附加内容,例如来自&#34;的属性&#34;。但是,在我的情况下,线程需要通过一些改变 this 的函数,例如

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

并且财产丢失了。尽管我在整个地方都使用.bind(this),但我不知道它是如何工作的,我只知道这使得它引用了我实现这些功能的对象实例。有些东西告诉我我可以使用bind来获得我的优势,但是我如何使用它将属性附加到我的线程?

1 个答案:

答案 0 :(得分:1)

我试图在功能2中找出的是这个主题来自哪里,它是来自按钮A还是B?你可以将event传递给你功能

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

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

然后您就可以确定按下了哪个按钮。

由于