dynamic scoping javascript