Вариант 1:
var newSpan = function() {
var el=document.createElement("span");
el.onclick=arguments.callee.onclick;
return el;
};
newSpan.onclick = function() {Expand(аргументы)};
Вариант 2:
var newSpan = (function() {
var onclick = function() {Expand(аргументы)};
return function() {
var el=document.createElement("span");
el.onclick=onclick;
return el;
};
})();
Вариант 2 мне больше нравится, я почти всегда начинаю со следующей конструкции:
var MyObj = (function() {
return {
initialize: function() {
//
}
};
})();