ので、同様に、私は、簡単なHTMLを作成しました:HTMLスクリプトタグでクロージャは正常に機能しますか?
<!DOCTYPE HTML>
<html>
<head>
<script>
function initElement(){
var p = document.getElementById('pp');
p.setAttribute("style", "color:pink");
p.onclick = x;
}
function x(){
p.setAttribute("style", "color:brown"); // Doesnt work because p is not defined
document.getElementById('pp').setAttribute("style", "color:brown"); // works
};
</script>
</head>
<body onload="initElement()">
<h1> Dummy <h1>
<p id="pp"> this is for testing </p>
<button id="dummy"> Hello! </button>
</body>
</html>
がp
閉鎖からロードされません。なぜ?これは、次の例では、jsの中https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onclick
閉鎖ではないため動作しません。 'p.onclick = function(){p.setAttribute(...)...}'のように書くとうまくいきます。 – axiac
ここにクロージャはありません。関数だけがあります。関数の中で宣言された変数は、外部からは利用できません。 –