Я новичок в узле и просто пытаюсь использовать 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: этот [process.argv [3]] не является функцией –
Трудно сказать, что здесь происходит.Является ли 'N' объектом с помощью метода displayStops()'? И является ли 'N' свойством любого объекта, на который это ссылается, в этом контексте? И «N» - второй аргумент, который вы передаете, когда вы запускаете свою программу из командной строки ('process.argv [3]' должен быть вторым аргументом)? Или является 'N' свободной плавающей переменной (в этом случае вы не можете делать то, что вы пытаетесь сделать, но есть обходные пути)? – McMath