1

我想在 JavaScript 类中包含一个 onclick 事件,但由于 onclick 是该类内部的一个函数,因此该this变量将无法正常工作。

如何this从 onclick 函数修改/输出变量?

img = new image();

function image() {
    this.width = 400;
    this.height = 600;
    document.getElementById('button').onclick = function()
    {
        alert(this.width); // alerts undefined
    };
}

在此处查看 JSfiddle:http: //jsfiddle.net/ZghRv/

4

2 回答 2

1

您可以使用 bind() 创建一个新函数,该函数将this设置为您传递给 bind() 的对象。

img = new image();

function image() {
    this.width = 400;
    this.height = 600;
    document.getElementById('button').onclick = (function()
    {
        alert(this.width); // alerts undefined
    }).bind(this);  // <---  Add bind() here to pick the value of 'this' inside onclick
}

查看JavaScript 函数绑定以获取更多信息和交互式示例。

于 2013-09-18T03:28:05.047 回答
0

也可以参考外部this

更新小提琴:

http://jsfiddle.net/ZghRv/3/

于 2013-09-18T03:29:39.977 回答