我正在嘗試學習JavaScript,但遇到了一個障礙。如果答案顯而易見並且通過簡單搜索可以達到,我提前致歉。我是編程和JavaScript的新手,並且不確定要遵循哪些查詢。JavaScript:當給一個變量賦值一個匿名函數時,函數返回值沒有被傳遞,而是函數作爲一個字符串
在下面的代碼中,該函數從HTML表單獲取值,執行一些處理並將其發回。我測試了輸入和輸出過程,並且它正常工作。
function foo() {
var x = parseInt(document.formdata.fieldone.value);
var y = parseFloat(document.formdata.fieldtwo.value);
if (isNaN(y))
{ var z = x; }
else
{ var z = function(x, y) {
if ((y * (x/100)) < 1) {
return (x + Math.ceil(y * (x/100))); }
else if ((y * (x/100)) > 1) {
return (x + Math.round(y * (x/100))); }
else {
return 0; } } }
var bar = document.getElementById("output");
bar.innerHTML = z; }
問題是,當條件語句的else分支試圖處理匿名函數時,返回值沒有賦值;而是整個函數作爲一個字符串。即,在HTML頁中的出現以下內容:
函數(X,Y){如果((Y *(X/100))< 1){返回(X + Math.ceil(Y *( x/100))); } else if((y *(x/100))> 1){return(x + Math.round(y *(x/100))); } else {return 0; }}
我測試了Chrome和Firefox中的代碼,結果是一樣的。
任何幫助表示讚賞,並提前感謝您。
謝謝你,調用函數總是幫助:) – Omega 2010-02-20 11:05:43