Я задающие класс:Javascript класса - функция оптимизации (функции внутри функций)
MyClass = function() {
// Class member variables here
};
MyClass.prototype.MyFunction = function() {
// Do stuff, see below
};
То, что я не уверен в MyFunction. Это шаблон, который у меня есть в данный момент (функция внутри функции). У меня это так, потому что это выглядит аккуратно. MyFunctionSubFunction встречается только с MyFunction, поэтому с точки зрения стиля я предполагаю, что MyFunctionSubFunction должен быть в определении MyFunction.
MyClass.prototype.MyFunction = function() {
var i, j, iIter, jIter, a, b, c, val;
var MyFunctionSubFunction = function (a, b, c) {
// Do things with a, b and c
};
// iIter and jIter are set to values depending on what is going on
for(i=0; i<iIter; i++) {
for(j=0; j<jIter; j++) {
// a, b and c are now set depending on i and j
MyFunctionSubFunction(a, b, c);
}
}
};
Это хорошая практика кодирования (функция внутри функции)?
Оптимизирован ли он для скорости и всего остального?
MyFunction (верхняя функция) вызывается примерно 250 раз в секунду (это игра, это часть кода AI).
Или я должен делать что-то вроде этого вместо ?:
MyClass.prototype.MyFunction = function() {
var i, j, iIter, jIter, a, b, c, val;
// iIter and jIter are set to values depending on what is going on
for(i=0; i<iIter; i++) {
for(j=0; j<jIter; j++) {
// a, b and c are now set depending on i and j
this.MyFunctionSubFunction(a, b, c);
}
}
};
MyClass.prototype.MyFunctionSubFunction = function (a, b, c) {
// Do things with a, b and c
};
Спасибо. Отмечено, как ответили. (Извините, что я не вернулся раньше, но все внезапно стало напряженным через час после публикации этого вопроса.) – Rewind