Javascript将数据发送到函数

Javascript send data to function

本文关键字:函数 数据 Javascript      更新时间:2023-09-26

我想让生成器类作为父类,以及一些子类。所以我像这样定义默认构造函数和父函数:

  function Generator (){
   this._startIndex=0;
    this._endIndex=61;
    alert("Generator Ready " + this._startIndex + " " + this._endIndex);
}
Generator.prototype.make=function() {
    alert (this._startIndex);
} 
var worker= new Generator();
document.getElementById("but0").addEventListener("click", worker.make);

但在这种情况下,"this"是一个按钮,this._startIndex是未定义的。

万一,我调用如下函数:

document.getElementById("but0").addEventListener("click", worker.make(warker._startIndex));

该函数不是在单击时调用,而是在加载时调用。我嘘寒问暖,这是一个简单的问题,但一个多小时我找不到答案。

this关键字具有不同的含义,具体取决于范围和调用函数的人员。

强制this持有您想要的东西,您需要使用 Function.prototype.bind

document.getElementById("but0").addEventListener("click", worker.make.bind(worker));

或者您也可以使用闭合...

document.getElementById("but0").addEventListener("click", function() {
    worker.make();
});

in line document.getElementById("but0").addEventListener("click", worker.make);worker.make get调用它不与worker对象绑定时,你可以通过以下方式实现

document.getElementById("but0").addEventListener("click", worker.make.bind(worker));

document.getElementById("but0").addEventListener("click",function(){
worker.make();
})