私は数日前にjavascriptを起動し、関数の戻り値を出力するさまざまな方法で遊んでいました。明示的な印刷メソッド(ex。document.write)が呼び出されていないのに、関数の戻り値が印刷されるのはなぜですか?
<script>
function produceMessage(){
var msg= 'This should print';
return msg;
}
</script>
<span id="mySpan"></span>
これらのコード行はどちらも、メッセージを出力するwriteまたはcreateTextNodeのようなメソッドを呼び出します。
document.body.appendChild(document.createTextNode(produceMessage()));
document.write(produceMessage());
しかし、この行はそのようなメソッドを呼び出すのではなく、戻り値はまだ出力されています。
document.getElementById('mySpan').innerHTML=produceMessage();
私の直感が画面に表示される戻り値を持つために、あなたはこの例のように、それは印刷することができるようになる方法のいくつかの並べ替えを呼び出す必要があることを私に伝えます:
document.getElementById('mySpan').innerHTML=document.write(produceMessage());
これは間違っており、結果は未定義です。
PS:ページの読み込み後にdocument.writeを使用しないでください。ページとその上のすべてのスクリプトが消去されるため – mplungjan