<html><head></head><body><div style="color:#000; background-color:#fff; font-family:Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:13px"><div id="yui_3_16_0_ym19_1_1510889303486_2836">Ok, a quick example:</div><div id="yui_3_16_0_ym19_1_1510889303486_2846"><br></div><div dir="ltr" id="yui_3_16_0_ym19_1_1510889303486_2908">function scope_configure_fg_old(cid, tag, type, data_array) {<br id="yui_3_16_0_ym19_1_1510889303486_2923">    var g = get_gobj(cid, tag),<br id="yui_3_16_0_ym19_1_1510889303486_2924">        fg_path = g.querySelector(type); // class ".fgxy" or ".fgmono"<br id="yui_3_16_0_ym19_1_1510889303486_2925">    configure_item(fg_path, {<br id="yui_3_16_0_ym19_1_1510889303486_2926">        d: data_array.join(" ")<br id="yui_3_16_0_ym19_1_1510889303486_2927">    });<br id="yui_3_16_0_ym19_1_1510889303486_2928">}<br id="yui_3_16_0_ym19_1_1510889303486_2929"></div><div id="yui_3_16_0_ym19_1_1510889303486_2930" dir="ltr"><br></div><div id="yui_3_16_0_ym19_1_1510889303486_2949" dir="ltr">with the new interface, this becomes:</div><div id="yui_3_16_0_ym19_1_1510889303486_2950" dir="ltr"><br></div><div id="yui_3_16_0_ym19_1_1510889303486_2951" dir="ltr">function scope_configure_fg(cid, tag, type, data_array) {<br id="yui_3_16_0_ym19_1_1510889303486_2969">    gui(cid)<br id="yui_3_16_0_ym19_1_1510889303486_2970">        .get_gobj(tag)<br id="yui_3_16_0_ym19_1_1510889303486_2971">        .q(type, { // class ".fgxy" or ".fgmono"<br id="yui_3_16_0_ym19_1_1510889303486_2972">            d: data_array.join(" ")<br id="yui_3_16_0_ym19_1_1510889303486_2973">    });<br id="yui_3_16_0_ym19_1_1510889303486_2974">}<br id="yui_3_16_0_ym19_1_1510889303486_2975"></div><div id="yui_3_16_0_ym19_1_1510889303486_2996" dir="ltr"><br></div><div id="yui_3_16_0_ym19_1_1510889303486_3105" dir="ltr">Fewer variables, but more importantly the two aren't functionally equivalent.</div><div id="yui_3_16_0_ym19_1_1510889303486_3128" dir="ltr"><br></div><div dir="ltr">In the old version, if either the patch or the object does not yet exist, it can <br></div><div id="yui_3_16_0_ym19_1_1510889303486_3148" dir="ltr">potentially cause an error. Even if we added a null check in "get_gobj", notice <br></div><div id="yui_3_16_0_ym19_1_1510889303486_3147" dir="ltr">that we have a native DOM method below that which would also have to be <br></div><div id="yui_3_16_0_ym19_1_1510889303486_3145" dir="ltr">wrapped in a check.</div><div id="yui_3_16_0_ym19_1_1510889303486_3194" dir="ltr"><br></div><div id="yui_3_16_0_ym19_1_1510889303486_3209" dir="ltr">In the new version</div><div id="yui_3_16_0_ym19_1_1510889303486_3217" dir="ltr">a) if the window does not yet exist, all the methods of "gui" will simply be ignored.</div><div id="yui_3_16_0_ym19_1_1510889303486_3241" dir="ltr">b) all methods return a reference to the interface so you can chain things without <br></div><div id="yui_3_16_0_ym19_1_1510889303486_3242" dir="ltr">running into null errors.</div><div id="yui_3_16_0_ym19_1_1510889303486_3249" dir="ltr"><br></div><div id="yui_3_16_0_ym19_1_1510889303486_3248" dir="ltr">In addition to objects you can also send a function callback for more complex needs.</div><div id="yui_3_16_0_ym19_1_1510889303486_3257" dir="ltr">Also, there's an "append" method that leverages a documentFragment in order to <br></div><div id="yui_3_16_0_ym19_1_1510889303486_3256" dir="ltr">more efficiently mutate the DOM.</div><div id="yui_3_16_0_ym19_1_1510889303486_3243" dir="ltr"><br></div><div id="yui_3_16_0_ym19_1_1510889303486_3244" dir="ltr">-Jonathan<br></div></div></body></html>