為替レートを取得するために JavaScript で 2 つの補完的な関数を作成しました (ここにあるコードに基づいています) が、なぜ 1 つの関数だけにできないのか理解できません。これは動作するコードです:
var money;
function showRate() {
getRate('EUR','USD');
alert(money);
}
function getRate(from, to) {
var script = document.createElement('script');
script.setAttribute('src', "http://rate-exchange.appspot.com/currency?from="+from+"&to="+to+"&format=json&callback=sendRate");
document.body.appendChild(script);
}
function sendRate(data) {
money = parseFloat(data.rate, 10);
}
コードはソースの変更です。コードは理解できましたが、行は理解できませんでしたdocument.body.appendChild(script);
。
しかし、私の質問は、なぜ 2 つの別個の関数 (getRate
とsendRate
) を実行する必要があるのですか? 私は多くのことを試しましたが、そのようなものはうまくいきません:
function showRate() {
alert(getAndSendRate('EUR','USD'));
}
function getAndSendRate(from, to) {
var script = document.createElement('script');
script.setAttribute('src', "http://rate-exchange.appspot.com/currency?from="+from+"&to="+to+"&format=json");
return(parseFloat(document.body.appendChild(script).data.rate, 10));
}
コードの 2 番目の部分が機能しない理由と、修正できるかどうかを説明してもらえますか?
ありがとう!