mam mnóstwo JavaScriptu od zarania dziejów z wywołań funkcji napisane tak:Wzory javascript: Kontekst Function Call
THING.someFunction.call(THING);
Wydaje mi się, że zawsze powinny być równoważne:
THING.someFunction();
Czy te dwa połączenia są zawsze równoważne? Co ze starszymi wersjami JavaScript?
Wydaje mi się, że celem drugiego THING
w tym pierwszym wierszu kodu jest ustawienie kontekstu (this
) wewnątrz someFunction
. Ale kontekst wewnątrz tej funkcji powinien być domyślnie ustawiony na THING
, prawda?
Wystarczy być jasne, THING
jest zdefiniowane tak:
var THING = function() {
// private vars
return{
// code
someFunction : function() {
// code
}
};
}();
Sposób, w jaki teraz masz swój kod, "THING.someFunction" jest "niezdefiniowany". – gilly3
Uważam, że brakuje nawiasów na końcu deklaracji THING, czyli. RZECZ = funkcja {}(); –