我是新來的節點,只是試圖使用process.argv調用正確的對象上的方法,但我不斷收到一個錯誤,它不能讀取undefined屬性。Node.js - 使用變量作爲對象名稱來調用方法
// returns with undefined error
var stops_input = process.argv[3];
this[process.argv[3]].displayStops();
// hard-coding object name works with the method:
N.displayStops();
// displayStops method
this.displayStops = function(){
string = "";
stops.forEach(function(i){
if (i === stops[stops.length -1]) {
string += i;
} else {
string += i + ", ";
}
});
console.log(this.name + " train stops: " + string);
}
感謝您的關注。有關如何使用節點終端控制檯中的變量調用對象的任何想法?
的
你嘗試'這個[process.argv [3]()' – adeneo
這個[process.argv [3]()displayStops()。拋出我這個錯誤: TypeError:this [process.argv [3]]不是函數 –
很難說出這裏發生了什麼。'N'是一個帶有displayStops()方法的對象嗎?在這種情況下,「N」是否是「this」引用的任何對象的屬性?當你從命令行運行你的程序('process.argv [3]'應該是第二個參數)時,你傳遞的第二個參數是'N'?或者'N'是一個自由浮動的變量(在這種情況下,你不能做你正在做的事情,但有解決方法)? – McMath