2. If Java was written as JavaScript
public class MyApp {
public static void main(String[] args) {...}
public static void submit(HtmlForm nativeForm) {...}
public static void registerNewProductEventHandler() {...}
public static void newProduct(DomEvent event) {...}
public static void keyUp(HtmlInput input) {...}
public static void addInitialValueStorage(HtmlObject obj)
public static void handleFormChanged(HtmlRow row, DomEvent e)
public static void calculatePrices(DomEvent e) {...}
public static void hide(HtmlRow row) {...}
public static void select(HtmlRow row) {...}
public static void selectRow(HtmlRow row) {...}
public static void handleSelectViewEvent(DomEvent event) {...}
public static void selectView(String id) {...}
public static void showViewColumns(String viewId) {...}
public static void initColumnWidths(String viewId) {...}
public static void setViewLinkSelected(String viewId) {...}
public static boolean isEmpty(String str) {...}
public static String findCurrentView() {...}
public static boolean newProduct(DomEvent event) {...}
}
3. If Java was written as JavaScript (2)
public static void submit(HtmlForm nativeForm) {
String queryString = jQueryUtils.wrap(nativeForm).serialize();
JForm form = jQueryUtils.wrap(nativeForm);
Url url = form.attr("action");
String viewId = findCurrentView();
String oldId = form.attr("id");
jQueryUtils.post(url, queryString, (data) -> {
String id = form.find("input[name='id']").attr("value");
boolean isNew = isEmpty(id);
String newId = jQueryUtils.wrap(data).attr("id");
if (isNew) {
jQueryUtils.wrap("#" + oldId).replace(data);
registerNewProductEventHandler();
showViewColumns(viewId);
registerRowEventHandlers(newId);
}else{
String dataWithCorrectView = jQueryUtils.wrap(data).find("div").each({
if (jQueryUtils.wrap(nativeForm).attr("id").indexOf(viewId) > -1) {
jQueryUtils.wrap(nativeForm).removeClass("hidden");
}
});
jQueryUtils.wrap("#"+oldId).html(dataWithCorrectView);
registerRowEventHandlers(oldId);
}
jQueryUtils("#"+oldId).removeClass("div_table_row_selected");
}).error((data) -> {
if (oldId == "form-new"){
data.setResponseText(data.responseText.replace("form-", oldId));
}
jQueryUtils.wrap("#"+oldId).replace(data.getResponseText());
registerRowEventHandlers(oldId);
showViewColumns(viewId);
selectRow(jQueryUtils.wrap("#" + oldId));
});
return false;
}
4. module pattern
var myModule = (function () {
var myPrivateVar;
// A private counter variable
myPrivateVar = 0;
// A private function which logs any arguments
function myPrivateMethod(foo) {
console.log( foo );
};
return {
// A public variable
myPublicVar: "foo",
// A public function utilizing privates
myPublicFunction: function(bar) {
// Increment our private counter
myPrivateVar++;
// Call our private method using bar
myPrivateMethod(bar);
}
};
})();
http://addyosmani.com/resources/essentialjsdesignpatterns/book/#modulepatternjavascript