Набрёл на пример в книге, в котором в прототип функций (всех) добавляется метод :
Function.prototype.method=function(name, func){
this.prototype[name] = func;
return this
};
Автор пишет "
благодаря этому методу не нужно будет задавать имя свойства prototype
Я понимаю этот пример не полностью, поправьте меня если я не правильно рассуждаю :
1) В прототип функций добавляется метод method ( то-есть данный метод
method будет доступен через цепочку
[[prototype]]
всем функциям)
2)
this
в этом коде указывает на функцию, к которой данный метод будет применяться (вызываться, к примеру
foo.method
)
3) Дальше каша. . . представим, что у нас есть
foo( ){. . .}
- вызывая
foo.method
получается фраза
this.prototype
будет означать
foo.prototype
?
- что за таинственное свойство
[name]
имеется ввиду?
- и что в данном случае значит
return this
?
Если можете, приведите примеры использования данного метода, ну и конечно объясните мне мои вопросы, спасибо!