Общий метод создания частных методов (сортов) в JavaScript заключается в следующем:Javascript частные методы: выражение функции против объявления функции
Class = function (arg0, arg1) {
var private_member = 0;
var privateMethod = function() {
return private_member;
};
}
Приведенный выше пример также может быть сделано с помощью функции декларации вместо функция:
Class = function (arg0, arg1) {
var private_member = 0;
function privateMethod() {
return private_member;
}
}
Каким образом эти два способа объявления частного метода отличаются? (Вне того, что одно является выражением, а другое - объявлением)
Например, выражение, очевидно, генерирует новую функцию каждый раз, когда вызываемый конструктор вызывает. Случается ли это также с объявлением функции, или оно только оценивается один раз, потому что объявления функций оцениваются во время разбора? (В отличие от выражений функций, которые оцениваются во время выполнения, вы получаете идею.)
EDIT: Я знаю, что javascript не действительно имеют частные методы. Я использую этот термин свободно.
EDIT: Не дубликат var functionName = function() {} vs function functionName() {}, если что-то дубликат function expression vs function declaration with regard to javascript 'classes'. Мой вопрос заключается не в различии между выражениями функций и объявлениями функций в целом, а их различиями в отношении «частных членов» в «классах» javascript.
Таким образом, нет никакой разницы, кроме обычной декларации функции против выражения различий, тогда? И я знаю, что у javascript нет реальных классов, я использую термин «частный метод» свободно. – Wingblade
Да. Если нет необходимости быть _expression_, я обычно пишу их как _declarations_, потому что лично мне легче их читать. Я все же пишу выражения. –