Я очень новичок в кодировании javascript-плагина, и у меня есть за последние полгода около двух плагинов моих собственных, в основном плагинов галереи для моего личного использования. теперь я обычно использую следующий шаблон в IFFE.Это в прототипе функции vs this в объектной литеральной функции
$.Mypluginname = function() {
this.anotherfunction(); // works !!
}
$.mypluginname.prototype.anotherfunction(){
// this points to $.Mypluginname awesome!!!
}
$.mypluginname.prototype.anotherfunction(){
// this points to $.Mypluginname awesome!!!
}
Но в последнее время я нашел лучший JS плагин шаблон, это выглядит так,
$.Mypluginname = function() {
}
$.mypluginname.prototype = {
anotherfunction : function(){
// this points to $.Mypluginname awesome!!! ... but how ?
}
mypluginname : anotherfunction(){
// this points to $.Mypluginname awesome!!! ... but how ?
}
}
Посмотрите, как this
все еще указывает на основной функции, мой вопрос на самом деле, как?
, как это это в следующей функции:
$.Mypluginname = function() {
this.anotherfunction(); // works !! ... can you answer this quinten.
}
?
Может ли кто-нибудь объяснить?
EDIT :: Ответов: thread. ни один из которых не отвечает на мой вопрос, который не был «как работает прототип». чтение этого потока, безусловно, улучшит мои знания прототипа JS, но я не понимаю, как это объясняет, как this
работает в нижнем шаблоне проектирования.
$.mypluginname.prototype = {
anotherfunction : function(){
// this points to $.Mypluginname awesome!!! ... but how ?
}
mypluginname : anotherfunction(){
// this points to $.Mypluginname awesome!!! ... but how ?
}
}
спасибо.
Alex-z.
Неверный код в вашем вопросе Javascript.Можете ли вы опубликовать фактический код? –
'this' should * not * указывает на' $ .Mypluginname', но на соответствующий экземпляр, на который вы вызвали ваш метод. – Bergi
@ FrédéricHamidi отредактирован, я думаю, что это должно иметь смысл. –