this.example = ko.computed(function () {
}, this);
Jak rozumieć to co przekazujemy jako this w callbacku?
this.example = ko.computed(function () {
}, this);
Jak rozumieć to co przekazujemy jako this w callbacku?
0
this.example = ko.computed(function () {
}, this);
Prawdopodobnie przekazywana funkcja jest bindowana do tamtego this
.
Innymi słowy:
this.example = ko.computed(function() {
// to `this` *nie* jest tym samym `this`, co na zewnątrz (`function` wprowadza nowy kontekst)
});
this.example = ko.computed(function() {
// to `this` *jest* tym samym `this`, co na zewnątrz (`function` jest wiązane z przekazanym kontekstem)
}, this);
this.example = ko.computed(() => {
// to `this` *jest* tym samym `this`, co na zewnątrz (funkcje strzałeczkowe nie wprowadzają nowego kontekstu, tylko są automatycznie wiązane z tym wyżej)
});
this.example = ko.computed(function() {
// to `this` *jest* tym samym `this`, co na zewnątrz (`function` jest wiązane z przekazanym kontekstem)
}, this);
Czyli tym thisem w callbacku jest ten this.example? Bo on jest po za funkcją.
Tak, możesz to tak rozumieć.
Lub inaczej: bez przekazywania tego this
nie byłbyś w stanie odnieść się do innych elementów tego obiektu (np. gdybyś gdzieś przed funkcją zrobił this.foo = 1024;
, nie widziałbyś tego w funkcji).
Wtedy w callbacku by było trzeba dać:
this.foo
?
Jeśli ten obiekt this po za funkcją miał jeszcze właściwość foo.
Jeśli chciałbym odwołać się do właściwości foo
Ale wiesz, że możesz to wszystko sprawdzić sam, prawda? ;-)