Внизу, options.min==1969
. Идентификатор хотел бы сделать новую дату, используя options.min
, а затем на эту дату вызывать одну из следующих функций даты: .getFullYear(), .getMonth(), .getDay(), .getHours(), .getMinutes()
.Как я могу вызвать функцию, сохраненную в одном объекте на другом объекте по имени?
Какая функция вызывается на новую дату, должны зависеть от величины options.type
Я хотел бы сделать это как можно короче и избежать повторного кода в if
и switch
заявления.
Это моя попытка сделать эту работу:
var options = {
dateFunctions: {
years: "getFullYear",
months: "getMonth",
days: "getDate",
hours: "getHours",
minutes: "getMinutes"
},
type: 'days',
min: '1969-01-02 10:00:00'
};
console.log('before: ' + options.min);
options.min = new Date(options.min)[options.dateFunctions[options.type]]
console.log('after: ' + options.min);
Я ожидаю, призывающую options.min = new Date(options.min)[options.dateFunctions[options.type]]
быть эквивалентно вызову new Date('1969-01-02 10:00:00').getDate())
и options.min
быть установлен в 1
.
Вместо options.min
установлен в function getDate() { [native code] }
Что мне нужно изменить, чтобы получить результат функции, вызываемой на options.min
вместо самой функции?
Лицо, проголосовавшее за закрытие: Пожалуйста, сообщите, что неясно об этом вопросе, спасибо. – DelightedD0D
На самом деле вызовите функцию, поместив '()' в конец, вы просто ссылаетесь на нее. – SmokeyPHP