7
Zasadniczo jak mogę wywołać metodę bazową za pomocą poniższego wzoru?Metoda wywołania w języku JavaScript przy użyciu funkcjonalnego dziedziczenia Douglasa Crockforda
var GS = {};
GS.baseClass = function (somedata) {
var that = {};
that.data = somedata;
//Base class method
that.someMethod = function(somedata) {
alert(somedata);
};
return that;
};
GS.derivedClass = function(somedata) {
var that = GS.baseClass(somedata);
//Overwriting base method
that.someMethod = function(somedata) {
//How do I call base method from here?
//do something else
};
return that;
};
Dzięki.
Anatoliy, dlaczego muszę użyć metody .apply w tym przypadku? czy mogę po prostu wywołać basemethod (somedata)? – Sergey
Apply wykona funkcję "basemethod" w kontekście obiektu "that", tj. W metodzie "basemethod" możesz użyć "this" - to będzie link do tego. Jeśli użyjesz basemethod (somedata), funkcja będzie działała w kontekście globalnym (okienkowym), co w tym przypadku jest nieprawidłowe. Próbka:
– AnatoliyNiesamowite, dziękuję – danjah