我是新来的节点,只是试图使用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