Пожалуйста, посмотрите на это:
foo = function() {
document.write("Unicorn <br>");
return this; //This should return the foo Object every single time
};
//Now when I run foo(), it should display "Unicorn" and it does
foo();
foo.bake = function() {
document.write("Baked! <br>");
};
foo.bake();
foo.prototype.bake = foo.bake;
foo().bake();
Когда я в первый раз запускаю foo()
, он выписывает «Единорог», как и ожидалось. Затем я добавил новый метод в существующий объект foo (метод bake()
, который выдает «Baked!», И он тоже работает. Затем я попытался добавить тот же метод, но на этот раз, используя .prototype и IF Я правильно понимаю, теперь foo().bake
должна быть такой же функцией, как foo.bake
.
Я искал много статей в StackOverflow о том, как jQuery может вести себя как объект и функция одновременно. Я прочитал и понял ответы, но они не решили мою проблему.
Мой вопрос: как я мог заставить foo().bake()
работать так же, как foo.bake()
. Возможно ли это?
Спасибо всем в продвинутом ._