В большинстве случаев они по существу одинаковы, но вторая версия сохраняет память, потому что для каждого объекта есть только один экземпляр функции, а не отдельная функция для каждого объекта.
Причина использования первой формы является доступ к «частным членам». Например:
var A = function () {
var private_var = ...;
this.x = function () {
return private_var;
};
this.setX = function (new_x) {
private_var = new_x;
};
};
Из-за правил определения javascript private_var доступен функции, назначенной this.x, но не вне объекта.
Необходимо будет отредактировать .csproj файлы вручную и добавить цель "AfterClean".
Нет никакого зарегистрированного способа вставить пользовательские шаги очистки, к сожалению. Можно очистить вывод в событии перед сборкой, но это все еще разбросает артефакты сразу после чистого.
Из MSDN, вот порядок вызова для различных шагов сборки:
событие
Post-Build MSDN: Понимающие сделанные на заказ шаги
Для проектов Visual C ++ необходимо добавить файлы в раздел «Расширения для удаления при очистке» в свойствах конфигурации проекта «Общие». Несмотря на то, что он утверждает, что ему нужны расширения, на самом деле он использует глобусы и с радостью принимает полные пути и расширяет переменные MSBuild. У меня это сработало:
$ (ProjectDir) \ deployment \ *. *
Я не уверен, что вы можете удалить каталоги таким способом, но он может, по крайней мере, получить файлы.