Javascript将数据发送到函数

Javascript将数据发送到函数,javascript,function,Javascript,Function,我想让Generator类作为父类,和一些子类。所以我定义默认构造函数和父函数如下: function Generator (){ this._startIndex=0; this._endIndex=61; alert("Generator Ready " + this._startIndex + " " + this._endIndex); } Generator.prototype.make=function() { alert (this._start

我想让Generator类作为父类,和一些子类。所以我定义默认构造函数和父函数如下:

  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.\u startIndex是未定义的

在这种情况下,我调用如下函数:

document.getElementById("but0").addEventListener("click", worker.make(warker._startIndex));
函数不是在单击时调用的,而是在加载时调用的。
舒尔,这是一个简单的问题,但一个多小时我都找不到答案。

这个
关键字根据范围和调用函数的人有不同的含义

要强制
保存所需内容,您需要使用
Function.prototype.bind

document.getElementById("but0").addEventListener("click", worker.make.bind(worker));
或者你也可以用闭包

一致
document.getElementById(“but0”).addEventListener(“单击”,worker.make)
当调用
worker.make
get时,它不与worker对象绑定,您可以通过

document.getElementById(“but0”).addEventListener(“单击”,worker.make.bind(worker))


@没问题。欢迎来到JavaScript上的
这个
的神奇世界;)非常感谢。但马蒂亚兹跑得更快。答案是一样的。我想你们都有愚蠢的新手问题的默认构造函数。))啊哈,几秒钟就完了…:D
document.getElementById("but0").addEventListener("click", function() {
    worker.make();
});
document.getElementById("but0").addEventListener("click",function(){
worker.make();
})