Re: [問題] javascript onload呼叫全域變數
※ 引述《jamuqa (jamuqa)》之銘言:
: 我javascript這樣寫時
: <script type="text/javascript">
: var CD = {};
: CD.name = "Tom";
: $(function(){
: console.log( CD )
: var CD = CD || {};
: console.log( CD );
: alert(CD.name);
: })
: </script>
: 會alert出undefined
: 但把 var CD = CD || {}; 註解掉則會正常顯示
: 請問是哪邊出問題了呢?
因為 hoisting 的關係 那個 function 等於
$(function(){
var CD;
console.log( CD );
CD = CD || {};
console.log( CD );
alert(CD.name);
})
所以第一個 console.log 跟 alert 是 undefined
改用 window.CD || {} 或換個名稱
hoisting 參考資料:
http://goo.gl/CYW4H
http://goo.gl/Rsyki
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.34.34.70
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):