Я знаю, что это может быть странный вопрос, возможно, без практического применения, но можно ли создать класс JavaScript, который строит экземпляры, которые ведут себя как функции? Вот что я имею в виду:JavaScript-конструктор, экземпляры которого являются функциями
function Factory() {}
// this may not be necessary, but I'll include it for sake of clarification
Factory.prototype = Object.create(Function.prototype);
var method = new Factory();
method(); // Objective: should not throw TypeError
Для дальнейшего уточнения цели:
method
должен быть отозван как функцияmethod
должна быть результатом вызова конструктора (например,var method = new Factory()
в данном случае)- Конструктор не может быть
Function
.
Какую проблему вы пытаетесь решить? Вы отправили код с неизвестным приложением. У нас есть нулевой контекст, в котором можно оценить его или узнать, что еще предложить. Кроме того, немного сложно сказать, каков ваш вопрос. – jfriend00
@ jfriend00 это просто вызов, по сути, никакого контекста. Мне просто интересно, если это можно сделать в JavaScript, и я думаю, что ответы на это могут показать некоторые полезные ниши различных конструкций JavaScript, чтобы сделать такое поведение возможным. –
Итак, «возможно ли это», вы просто имеете в виду, что это не создает ошибки? Вы не указали, какой результат вы хотите получить, поэтому трудно оценить, возможен ли неизвестный результат. Извините, но я понятия не имею, как ответить на вопрос «возможно ли это», когда «это» вообще не описано. На самом деле, теперь я даже не знаю, в чем вопрос. – jfriend00