Javascript无法识别"this"对象

Oct*_*ian 1 html javascript prototype

请看这个小提琴:

http://jsfiddle.net/GSHsH/9/

HTML:

<div id="papa" onclick="anything(this);">Blabla</div>?
Run Code Online (Sandbox Code Playgroud)

JS:

function anything(theObj){
    window.alert(theObj.innerHTML);
}
Run Code Online (Sandbox Code Playgroud)

我不明白为什么函数"任何东西"得不到重新调整.(使用原型)

Jam*_*iec 6

并不是它没有意识到this- anything由于你在jsfiddle中做出的设置而无法识别方法- 将javascript范围扩展到onLoad.如果你选择no wrap (head)它会工作正常:http://jsfiddle.net/GSHsH/11/

更详细一点.你设置它的方式,这是注入jsfiddle的输出框架:

Event.observe(window, "load", function(){

function anything(theObj){
    window.alert(theObj.innerHTML);
}

});
Run Code Online (Sandbox Code Playgroud)

请注意,该方法anything不在全局(窗口)范围内,它在特定函数的范围内.这意味着它对页面上的元素不可见.

我设置它的方式你得到这个:

function anything(theObj){
    window.alert(theObj.innerHTML);
}
Run Code Online (Sandbox Code Playgroud)

这只是在页面头部定义的普通旧函数 - 现在可以从页面上的元素访问.