![](/img/trans.png)
[英]Why can't I access global-scope variables from one file in another file?
[英]How can I access variables in a function from the global scope?
我無法從全局范圍訪問函數中的變量。 通常我可以在其他函數中訪問變量。
如何在全局范圍內的以下代碼中使用str
變量?
<html>
<script>
function myf(){
str = "Change";
document.write(str);
}
document.write(str); // can not access str
</script>
<input type="button" value="OPEN" onclick="myf();">
</html>
全局聲明str
以明確設置其范圍。
var str;
function myf(){
str = "Change";
document.write(str);
}
myf();
document.write(str); // can access str
請記住,如果沒有調用myf()
,則str
的值仍然是undefined
。
通常,由於依賴關系問題,您不想在函數內部修改全局變量。 考慮類似:
function myf() {
return "Change";
}
document.write(myf());
或者,如果您需要狀態:
function myf() {
var state = "Change";
return {
get_state: function () {
return state;
},
set_state: function () {
//
}
}
}
var f = myf();
document.write(f.get_state());
除了您必須以正確的順序運行代碼外,您的工作方式…。
目前您是:
str
並將其寫入文檔的函數(刪除流程中的現有文檔) 您必須交換最后兩個任務的順序……並停止在函數內部使用document.write
。
在使用變量之前聲明變量也是一種好習慣(在JavaScript嚴格模式下是必需的)。 您應該將var str
放在腳本的頂部。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.