var afternoon = document.write = "Good afternoon";
これが行うことは、という変数を導入し、それと以前は関数呼び出しだったプロパティonのafternoon
両方を string に設定することです。write
document
"Good afternoon"
コードの後半でafternoon
、変数にアクセスするだけで、何もしません。
次のようなことをしたいようです:
var morning = function() { document.getElementById("greeting").innerHTML="Good Morning "; };
var afternoon = function() { document.getElementById("greeting").innerHTML="Good Afternoon "; };
var evening = function() { document.getElementById("greeting").innerHTML="Good evening"; };
if (time < 12) {
morning();
} else if (time < 18) {
afternoon();
} else {
evening();
};
つまり、上記はコードに最も近いものであり、ある程度正しいです。まだまだ改善の余地があると言えます。次のようなものは、私にとってより理にかなっています。
var morning = 'Good Morning ';
var afternoon = 'Good Afternoon ';
var evening = 'Good evening';
if(time < 12) {
document.getElementById("greeting").innerHTML = morning;
} else if (time < 18) {
document.getElementById("greeting").innerHTML = afternoon;
} else {
document.getElementById("greeting").innerHTML = evening;
}
さらに良いことに、最初に使用するメッセージを決定してから割り当てることができます。これにより、挨拶を出力する場所を変更したい場合に、コードを変更する場所が少なくなります。たとえば、次のようになります。
var messages = {
morning: 'Good Morning ',
afternoon: 'Good Afternoon ',
evening: 'Good evening'
};
var greeting = time < 12
? messages.morning
: time < 18
? messages.afternoon
: messages.evening;
document.getElementById('greeting').innerHTML = greeting;