2011-06-07 37 views
2

我正在使用和測試使用JavaScript的VbScript API。 VbScript API的一部分有一個構造,我必須假定它是一個數組,可以讀寫。我沒有VbScript API的源代碼,我甚至不能訪問它暫時運行的系統。在我的JavaScript測試代碼中,嘲笑myObj和myFunc,分配會引發一個錯誤,這並不奇怪,因爲我將它嘲笑爲一個函數。使用JavaScript僞裝VbScript數組

myObj.myFunc("xyz") = 1 

因爲JavaScript使用[]作爲訪問器,所以模擬爲數組將不起作用。 一個解決方案是使用JavaScript將調用包裝到myFunc中,但我想知道是否可能有更巧妙的解決方案,JavaScript是它的易用語言。

我想我已經在這裏回答了我自己的問題......我只需要設置和讀取一個值,這就是爲什麼它沒有被包裝和嘲笑爲一個數組。答案是繼續幷包裝它。

謝謝, 邁克

回答

0

這個怎麼樣?

myObj.setValue("xyz", 1); 

真的,它試圖模擬另一種語言的語法是沒有意義的。

+0

我可以不會改變vbscript API,我更喜歡我的mocks完全匹配它。但你是對的,我恐怕我已經問過一些不可能真正回答的問題。所以我會繼續,通過接受來關閉這個問題。 – Mike 2011-06-07 20:04:02

0

我完全不明白的問題,但如果你想創建一個JS構造,可以使用該格式設置一個數組元素,這是很容易

Array.prototype.setValue = function(key,value) { 
    this[key]=value; 
}; 

http://jsfiddle.net/gcVSq/

+0

謝謝,但我認爲我想要做的僅僅是不可能的,只是包裝它是有道理的。 – Mike 2011-06-07 20:07:29