回答
沒有,這樣做的能力沒有任何意義。假設我們稍微改變你的函數,並把它稱爲3倍:
function x(n){
var x = n+34;
}
x(1), x(2), x(3);
在這一點上,該功能已運行3次,所以變量x
已創建3倍 - x
你會希望能夠訪問哪些?然後有垃圾收集;如果瀏覽器在變量不在範圍內時必須保持變量存活,那麼如何從內存中清除引用和數據?
如果你想,你可以做這樣的事情:
function x() {
x.x = 12+34;
}
x();
,或者,如果變量是靜態/恆定,你擁有了它
function x() { }
x.x = 12+34;
或最後,其他人指出,通過在功能範圍外聲明x
以不同的名稱:
var y;
function x() {
y = 12+34;
}
x();
是的,但不在上面的示例範圍。你必須使用閉包。考慮以下幾點:
var x,
A = function() {
x = 12 + 34;
};
通過這種方式,你可以從功能A.什麼是更好的內部訪問x是X具有A的私有成員的直接訪問,因此可用於泄漏到外面的私人數據A.
答案沒有解決問題。這個答案描述了一個與Shusl所問的根本不同的情況。 – outis
是不是真的,你怎麼可能知道Shusl打算什麼?也許舒斯爾並不知道關閉是一種慣例/選擇,所以沒有想到用這種方式提出問題。 – austincheney
這就是爲什麼這個答案沒有解決這個問題:你不能知道舒斯爾想要什麼,只有舒斯爾問什麼。如果您懷疑這個問題沒有解決Shusl真正想知道的內容,那麼您應該要求澄清(儘管您需要爲此獲得更多的重要信息)。或者,回答所問的問題,然後包括一個預測提問者需求的部分,就像Andy E所做的那樣。就目前來看,「是」是舒斯爾問題的錯誤答案。 – outis
你不能直接通過它的名字來訪問它,嘗試從變量聲明中刪除'var',因爲這應該使變量爲全局變量,或者將它們放在ready函數之外。並從函數返回x的值。
你可以做一些這樣的事:
$(document).ready(function() {
var x;
function x(){
x = 12+34;
return x;
}
alert(x());
});
希望這有助於。
- 1. 函數的所有實例是否可以訪問相同的私有變量?
- 2. JavaScript:是否可以訪問私有變量(即哪些隱藏在閉包中)?
- 3. JavaScript的私有函數訪問公共變量
- 4. 是否可以訪問Matlab中函數句柄中的變量?
- 5. 修改函數以訪問類之外的私有變量
- 6. 是否可以通過JSFL訪問as3函數和變量?
- 7. 是否可以動態訪問模塊模式中的私有變量?
- 8. 是否有可能從JQuery函數中訪問常規的JavaScript變量?
- 9. 是否有任何方法可以訪問java中的函數局部變量
- 10. 通過javascript中的私有方法訪問私有變量
- 11. GHUnit訪問私有變量
- 12. PHP私有變量訪問
- 13. WP7 - 訪問私有變量
- 14. 訪問私有變量
- 15. 類中的私有變量可以從Java中的main訪問?
- 16. javascript私人變量訪問問題
- 17. 在JavaScript函數中使變量私有
- 18. Javascript:從私人函數訪問公共變量
- 19. 的JavaScript可以訪問一個變量
- 20. 從HTML調用js函數時可以訪問javascript變量嗎?
- 21. C++訪問函數參數私有變量
- 22. Java EE 6中的@Remote是否可以訪問私有方法?
- 23. 訪問私有函數?
- 24. 混淆爲什麼可以訪問私有變量?
- 25. C#擴展方法可以訪問私有變量嗎?
- 26. 從javascript中的函數訪問變量?
- 27. 訪問函數內部的JavaScript變量
- 28. 是否可以綁定到私有變量暴露的屬性?
- 29. 我可以在此JavaScript函數的替代版本中訪問私有變量嗎
- 30. 提供函數指針訪問C++類的私有成員 - 是否有可能?
您的最終目標是什麼?也許你想看對象 –
編號'x'是本地的。 http://stackoverflow.com/questions/500431/javascript-variable-scope – adarshr
在你擁有它的方式,不,這就是爲什麼它是「私人」。順便說一句,命名數字和函數'x'並不是一個很好的選擇。 – pimvdb