Я хотел бы, чтобы обновить одну из переменных в классе векторного слоя после первоначального вызова к классуOpenLayers - Обновление инициализировать метод класса вызова
OpenLayers.Layer.Observations = OpenLayers.Class(
OpenLayers.Layer.Vector, {
, где один из вариантов является метод инициализации:
initialize: function(name, displayStyle, options) {
Похоже, вы не можете просто переопределить метод инициализации ...
var lyrObs = new OpenLayers.Layer.Observations("Observations",...
lyrObs.initialize(...)
Есть ли другой способ обновить переменную initialize methods?
Что это за заявление? OpenLayers.Layer.Vector.prototype.initialize.apply (это, аргументы); Он найден в методе initialize, но, кажется, вызывает себя с аргументами, которые исходят из синего. – Jonathan
метод 'initialize' класса Observations будет вызывать метод * parent *' initialize' (один из Layer.Vector) в * своей * области видимости ('this', first argument) и с теми же аргументами, которые он получает ('arguments', второй аргумент, ключевое слово зарезервированное javascript для получения аргументов функции). После того как вы вызвали метод родителя, вы можете сделать свой собственный материал. HTH ... – tonio
Спасибо tonio, что помогло мне понять утверждение: OpenLayers.Layer.Vector.prototype.initialize.apply (это, аргументы); Кажется, вы не могли бы назвать это вне класса, правда? То, что я пытаюсь сделать, - перезапустить метод initialize вне класса после того, как класс уже был создан, т. Е. После того, как уже запущен метод intialize. По существу он запускается во второй раз с другим аргументом, когда пользователь переключает поле выбора. Спасибо за помощь до сих пор, я думаю, что приближаюсь. – Jonathan