Передача аргументов в функцию
10 года 3 мес. назад #89259
от DK
DK создал тему: Передача аргументов в функцию
Надеюсь понятно объясняю)
в функции записываю метод в переменную: this.window_method = method;
в другой функции нужно вызвать this.window_method с аргументами, переданными этой функции
function create() {
this.window = new this.method(x, y, width, height, ...); // x, y... в массиве arguments, но массив мне не нужен
};
в функции записываю метод в переменную: this.window_method = method;
в другой функции нужно вызвать this.window_method с аргументами, переданными этой функции
function create() {
this.window = new this.method(x, y, width, height, ...); // x, y... в массиве arguments, но массив мне не нужен
};
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
10 года 3 мес. назад #89265
от Iren_Rin
Iren_Rin ответил в теме Передача аргументов в функцию
А apply не помогает?
Code:
this.method.apply(this, arguments);
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
10 года 3 мес. назад #89267
от DK
DK ответил в теме Передача аргументов в функцию
Так пробовал. Вылетает ошибка.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
10 года 3 мес. назад #89268
от Iren_Rin
По твоему примеру кода многого не скажешь.
Iren_Rin ответил в теме Передача аргументов в функцию
Значит ты делаешь что-то не так. Ты контекст передал первым аргументом в apply? Сохраненная функция принимает те же аргументы и в том же порядке, что и функция, из которой ты ее вызываешь?Subzeroy пишет: Так пробовал. Вылетает ошибка.
По твоему примеру кода многого не скажешь.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
10 года 3 мес. назад #89270
от DK
DK ответил в теме Передача аргументов в функцию
this.input_window_method = DKTools_Transfer_Window_Input;
DKTools_Transfer_Window.prototype.createAllWindows = function() {
this.createInputWindow(0, 0);
};
DKTools_Transfer_Window.prototype.createInputWindow = function() {
this.input_window = this.input_window_method.apply(this, arguments); // если добавить new, то вылетает, а без него просто виснет
this.addChild(this.input_window);
};
function DKTools_Transfer_Window_Input() {
this.initialize.apply(this, arguments);
}
DKTools_Transfer_Window_Input.prototype = Object.create(Window_Command.prototype);
DKTools_Transfer_Window_Input.prototype.constructor = DKTools_Transfer_Window_Input;
DKTools_Transfer_Window_Input.prototype.initialize = function(x, y) { Window_Command.prototype.initialize.call(this, x, y);
};
DKTools_Transfer_Window.prototype.createAllWindows = function() {
this.createInputWindow(0, 0);
};
DKTools_Transfer_Window.prototype.createInputWindow = function() {
this.input_window = this.input_window_method.apply(this, arguments); // если добавить new, то вылетает, а без него просто виснет
this.addChild(this.input_window);
};
function DKTools_Transfer_Window_Input() {
this.initialize.apply(this, arguments);
}
DKTools_Transfer_Window_Input.prototype = Object.create(Window_Command.prototype);
DKTools_Transfer_Window_Input.prototype.constructor = DKTools_Transfer_Window_Input;
DKTools_Transfer_Window_Input.prototype.initialize = function(x, y) { Window_Command.prototype.initialize.call(this, x, y);
};
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
10 года 3 мес. назад #89281
от Iren_Rin
Iren_Rin ответил в теме Передача аргументов в функцию
Давай ка разберем код что ты скинул
Что тут происходит? Записываем несуществующую переменную в глобальный контекст - в window? Или в этом месте у тебя уже что-то лежит в DKTools_Transfer_Window_Input ? Если ничего нет, то плагин свалится прямо на этом месте и исполнение дальше не пойдет.
Записывали мы функцию в глобальный контекст, а вызываем теперь из объекта класса DKTools_Transfer_Window ?
А этот код ничего не делает, ты и так уже скопировал весь прототип у Window_Command, включая initialize.
Code:
this.input_window_method = DKTools_Transfer_Window_Input;
Code:
DKTools_Transfer_Window.prototype.createInputWindow = function() {
this.input_window = this.input_window_method.apply(this, arguments); // если добавить new, то вылетает, а без него просто виснет
this.addChild(this.input_window);
};
Code:
DKTools_Transfer_Window_Input.prototype.initialize = function(x, y) { Window_Command.prototype.initialize.call(this, x, y);
};
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
10 года 3 мес. назад #89283
от DK
DK ответил в теме Передача аргументов в функцию
this.input_window_method = DKTools_Transfer_Window_Input;
Находится в классе DKTools_Transfer_Window.
DKTools_Transfer_Window_Input.prototype.initialize = function(x, y) { Window_Command.prototype.initialize.call(this, x, y);
}; там не только это, другие функции
Находится в классе DKTools_Transfer_Window.
DKTools_Transfer_Window_Input.prototype.initialize = function(x, y) { Window_Command.prototype.initialize.call(this, x, y);
}; там не только это, другие функции
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Время создания страницы: 0.095 секунд
