所以,這裏是交易。我使用的是一個onclick事件來觸發一個函數,所以每次點擊都會在div原始的innerHTML和另一個變量之間切換。當我將testfunction指定爲回調函數時,它可以工作。下面的代碼:javascript:將函數分配爲回調函數和變量範圍
var c = '';
function testfunction()
{
var a = this.innerHTML;
var b = 'blah';
if (a !== b)
{
c = a;
return this.innerHTML = b;
}
else
{
return this.innerHTML = c;
}
window.onload = function()
{
document.getElementById('rightcontent').onclick = testfunction;
}
我瞭解,在C保留了它的價值,因爲它是全球範圍內。但我不明白的是爲什麼ç回來未定義當我把函數轉換成一個匿名的回調爲這樣:
windows.onload = function()
{
document.getElementById('rightcontent').onclick = function()
{
this.innerHTML = testfunction();
}
}
沒有點任何的這個,我只是瞎搞。 ..但我想知道引擎蓋下發生了什麼。
對不起,如果這是其他地方,我已經通過一些帖子尋找我的答案,但我找不到它。
在此先感謝:-)
搜索'[javascript] this scope'或類似。 – 2013-01-08 23:29:03
您是否在'testfunction'裏面設置'window.onload'? –
@JustinMorgan:不,但我不知道爲什麼我應該或不應該。此外,我糾正了testfunction(),現在返回正確。 – whosmav