[JS] Funkcja anonimowa i this

0

Witam

Jak odnieść się do aktualnego obiektu z funkcji anonimowej?

			  var TabElement = 
			  	function(tab, tabContent, isActive) {
				  	this.tab = tab;
					this.tabContent = tabContent;
					this.setTabView(isActive);
					this.tab.click(function() {
								if (activeTab !== null) 
									activeTab.close();
								activeTab = this; //to nie przejdzie
								this.open(); /// ani to...
								   });
				};

				
				TabElement.prototype.open = 
					function() {
						effects.show(this.tabContent);
						this.setTabView(true);
					};

Jak to obejść w takim przypadku?

0

Dzięki domknięciu, wewnątrz funkcji anonimowej wciąż możesz się odnosić do zmiennych z funkcji zewnętrznej. W tym do argumentów przekazanych funkcji zewnętrznej. Czyli w funkcji anonimowej wciąż możesz używać tab (gdzie tab jest argumentem funkcji zewnętrznej).

Jeśli zaś chcesz się odnosić nie do tab, tylko do this z funkcji zewnętrznej, to w funkcji zewnętrznej (tej przypisywanej do TabElement) piszesz:

var that = this;

...a w funkcji wewnętrznej odnosisz się do zmiennej that (ponownie korzystając z właściwości domknięcia). Nie musisz tej zmiennej nazywać that, ale to taka w miarę powszechna konwencja.

0

Dzięki, teraz już wszystko działa.

1 użytkowników online, w tym zalogowanych: 0, gości: 1