Этот вопрос, возможно, задавался ранее, но я не знаю правильных ключевых слов, чтобы найти решение в Google, поэтому все мои исследования вернули 0
:) Или, что лучше, все мои исследования заканчивались «необязательными параметрами». «но для функций.
Предположим, у меня есть этот класс:
var Class = function (params) {
// I get the data somehow
params.name(data);
}
Проблема в том, что не каждый раз, когда я создаю экземпляр new Class()
, мне также нужно установить name()
, например:
new Class({
name: function (data) {
// Do something with the data
}
... other params ...
})
Но с указанным выше синтаксисом, если я не объявляю параметр имени как функцию, выдается ошибка params.name is not a function
:
// Error
new Class({
... other params ...
})
Мой вопрос: есть ли способ установить params.name()
в качестве необязательного параметра (в объекте), который может быть функцией или вообще не существовать (например, null
)? Что-то вроде высказывания: «когда вы создаете экземпляр класса:
- если вы объявите
name: function (data) {}
=> тогда: params.name(data)
- это функция
- если вы пропустите
name
=> все равно все в порядке (ошибка не выдается) "