我教我自己Javascript通過將C#代數表達式編譯器移植到Javascript中。我有一個OpBank對象,用於存儲每個運算符的屬性,例如它是符號和指向實現該運算符的函數的指針。我知道JS沒有函數指針,但我不知道還有什麼要調用它。Javascript:嘗試將函數設置爲數組中的對象的成員
當我嘗試加載網頁,我得到以下錯誤:
「Microsoft JScript運行錯誤:無法獲得屬性‘加上’值:對象爲null或undefined」
的當瀏覽器試圖解析底部的操作符數組時,會發生錯誤,這是對OpBank.Plus的抱怨。我嘗試了OpBank.Plus,OpBank.Plus(),只是普通的舊Plus和this.Plus。無論如何,當操作符數組被加載時,我無法識別Plus函數。
var OpBank = {
Plus: function (left, right) {
return (left + right);
},
Minus: function (left, right) {
return (left - right);
},
Operators: [
(new KeyValuePair("+", new ABinaryOperator("+", 1, OpType.Binary, "+", OpBank.Plus))),
(new KeyValuePair("-", new ABinaryOperator("-", 1, OpType.Binary, "-", OpBank.Minus)))
]
}
是我試圖不可能的?我是否應該使用OpBank的構造函數語法,即var ObBank = function(){}然後使用prototype來添加函數和數組?我不想這樣做,因爲我只需要一個OpBank來應用程序的生命,而且我不希望每種方法都必須實例化一個新的OpBank,因爲它是一個非常大的對象(僅顯示了其中的一部分) 。
呃,你是用IE/WSH學習JavaScript的?更好地使用一個合理的環境,比如[node.js](http://nodejs.org/)! – ThiefMaster 2012-04-18 13:39:11