我有一个带有包含方法功能的类的javascript文件。我想知道如何从onClick事件中调用类实例方法。

function MyClass()
{
    this.instanceData = "Display Me";

    this.DisplayData = function()
    {
        document.write(this.instanceData);
    }
}

var classInstance = new MyClass();

我将如何通过onClick事件在classInstance上调用DisplayData函数。例如:
<button onClick="classInstance.DisplayData()">Click Me!</button>

这行不通,但是可以帮助我弄清楚我要做什么。有什么建议么?

最佳答案

http://jsfiddle.net/EyMCQ/1/

如您所见,这是行不通的,因为您声明的var仍在执行块的范围内。如果删除var,它将起作用,因为classInstance现在在全局范围内。

function MyClass() {
    this.instanceData = "Display Me";

    this.DisplayData = function() {
        alert(this.instanceData);
    }
}

classInstance = new MyClass();​

并这样称呼它:
<button onClick="classInstance.DisplayData.call(classInstance)">Click Me!</button>​

http://jsfiddle.net/EyMCQ/2/

10-07 22:05