2012-08-14 72 views
0

我一直試圖弄清楚很長一段時間,並會感謝任何幫助。JavaScript數組元素沒有通過函數設置?

的代碼如下所示,這裏可以看到http://incoming.comule.com/isnan.html

<script> 
var price = new Array(); 

function add(price) { 
//alert("function add: is price not a number? = "+isNaN(price)); 
price[0] = price; 
} 

function addman() { 
price[0] = 0.87; 
} 

function status() { 
alert(price[0]); 
} 

function num() { 
alert("function Number: is price not a number? = "+isNaN(Number(price[0]))); 
} 

function pInt() { 
alert("function parseInt: is price not a number? = "+isNaN(parseInt(price[0]))); 
} 

function pFloat() { 
alert("function parseFloat: is price not a number? = "+isNaN(parseFloat(price[0]))); 
} 
</script> 

<a href="javascript:add('0.45');">Add price 0.45</a> then click ... <a href="javascript:status();">status</a> , 
<a href="javascript:num();">number</a> , <a href="javascript:pInt();">parseInt</a> , <a href="javascript:pFloat();">parseFloat</a> 

<p> 

<a href="javascript:addman();">set manually</a> 

當我點擊添加價格,那麼狀態,它顯示爲不確定的,但是當我點擊手動設置,那麼狀態,該狀態將顯示值。唯一的區別是它是如何設置的,有誰知道我可以通過函數變量添加它嗎?

回答

1

您只需要將Array重命名爲price以外的其他名稱即可。在add函數price內引用函數參數,而不是數組。

+0

謝謝你,斑點:) – piniyini 2012-08-14 10:28:18

1

問題是您的數組和函數參數共享相同的名稱。後者在函數範圍中取代前者,因此實際上將失去對外部數組的訪問權限。

更改參數名稱,你會沒事的。

+0

哦,你的傳奇!現在爲什麼我沒有想到:S 謝謝;) – piniyini 2012-08-14 10:27:52