Я изучаю код, и я увидел практику внедрения одной функции конструкторы в другое использовало много раз:конструктор внутри конструктора - плохая практика?
/**
* @constructor
*/
function contact_duplicates_manager(global_objects)
{
this.field_processors =
{
"Phone1Number": new phone_processor(),
"Phone2Number": new phone_processor(),
"Phone3Number": new phone_processor()
}
//...here some other code
/**
* @constructor
*/
function phone_processor()
{
//...here some other code
function clear_phone(phone)
{
//...here some code
}
this.is_equals = function (value1, value2)
{
return is_equals(clear_phone(value1), clear_phone(value2));
}
}
}
//... later in the code
var valid = this.field_processors[fld_name]["is_equals"](native_value, custom_value)
Как вы думаете phone_processor
функция конструктора должна быть вне contact_duplicates_manager
?
Сначала я бы написал его в читаемом формате (стиль Java). – spectre
Как используется 'phone_processor()'? – nnnnnn
Это просто «функция» внутри 'function', и с ней ничего не случилось *. Инкапсулирующий код, который используется только в родительской функции, на мой взгляд является хорошей практикой. – mekwall