如果我有原來的功能(作爲一個例子):匿名自調用JavaScript函數 - 返回多個對象
var x = function() { alert('tadaaa'); return 1; }
var y = function() { alert('tadaaa'); return 1; }
,我已經先行一步,並取得此爲自調用匿名JS功能,例如:
(function() {
var x = function() { alert('tadaaa'); return 1; }
var y = function() { alert('tadaaa'); return 1; }
})()
我在做什麼似是而非的事情?我想訪問x和y作爲全局變量,但自調用匿名函數在其他領域很有用,我現在不詳細討論 - 我只是想保留它。
我應該做這樣的事情:
var x= (function() {
var x = function() { alert('tadaaa'); return 1; }
var y = function() { alert('tadaaa'); return 1; }
// Should I be doing something like
return x
})()
或
var x= (function() {
var x = function() { alert('tadaaa'); return 1; }
return x
})()
var y = (function() {
var x = function() { alert('tadaaa'); return 1; }
return y
})()
似乎有些多餘?
在你的第二個代碼片段,我相信你將創建x`和`y`的`本地實例,因此將無法在全球範圍內訪問這些。丟失`var`會創建全局變量。然而,我不確定爲什麼你會想在沒有看到上下文的情況下做到這一點。 – 2010-12-07 12:14:19