我有一个发行人,我在这个“对象”中丢失了“这个”。下面一段 javascript 的输出给了我“some-id”,然后是“undefined”。当我在回调函数中使用“this”时,范围超出了对象,它不能再使用“this”。如何让回调使用“this”或至少可以访问该对象?
由于我将制作多个对象,因此我将无法创建像存储一样的“静态”。请帮助这个 javascript n00b ;-)
这是我的测试代码,您可以使用它来重现我的问题。我想要的是CheckBox.doSomething()
返回this.id
应该与some-id
这个测试用例匹配的值。
function CheckBox(input_id) {
this.id = input_id;
this.doSomething();
$('#some-element').click(this.doSomething);
}
Checkbox.prototype.doSomething = function() {
alert(this.input_id);
}
var some_box = new CheckBox('some-id');
some_box.doSomething();
$('#some-element').click();
编辑:我什至无法按照我的意愿让它工作:
function CheckBox2(input_id) {
this.id = input_id;
alert(this.id);
}
CheckBox2.prototype.doSomething = function() {
alert(this.input_id);
}
var some_box = new CheckBox2('some-id');
some_box.doSomething();