Я не вижу ничего плохого в этом коде. Этот подход используется для гарантии того, что undefined
действительно «неопределено», потому что в нестрогом режиме (ES5) вы можете переопределить это значение (поэтому, если вы используете сторонний скрипт или вредоносный скрипт будет внедрен на вашу страницу). 1002 *
По сути, у вас есть аргумент, и вы вызываете эту функцию без передачи какого-либо значения, поэтому оно будет "неопределенным". Вы можете получить тот же результат, имея:
(function(u) {
var foo = {
dirtyRow: u,
dirtyCells: u,
...
clearDirty: function () {
this.dirtyRow = u;
this.dirtyCells = u;
}
}
})();
Но, конечно, использование undefined
имеет больше смысла.