qLN北方站长站使用内部函数避免全局变量 qLN北方站长站
我们可以通过增加传递给mt的参数数量来除掉所有的全局变量。但代替方案,我们将使mt变成kd的内部函数。作为一个内部函数,mt能访问kd的所有变量。 qLN北方站长站
qLN北方站长站
| unction kd(e) {qLN北方站长站 var ev = e || event,qLN北方站长站 el = ev.target || ev.srcElement,qLN北方站长站 cnt,qLN北方站长站 code = ev.keyCode,qLN北方站长站 gk,qLN北方站长站 id = el.id,qLN北方站长站 ctn = lt.id.substring(1); iT粉丝网 qLN北方站长站 function mt() {qLN北方站长站 var nextTab;qLN北方站长站 if (!ev.ctrlKey && !ev.altKey) {qLN北方站长站 nextTab = parseInt(ctn) + ev.shiftKey ? -1 : 1;qLN北方站长站 if (!nextTab) {qLN北方站长站 d.getElementById('mk').focus();qLN北方站长站 } else if (nextTab < 8 ) {qLN北方站长站 t(d.getElementById('v' + nextTab));qLN北方站长站 }qLN北方站长站 }qLN北方站长站 } qLN北方站长站 if (code == 13) {qLN北方站长站 return;qLN北方站长站 } else if ((code == 191 || code == 222) && id != 'fp') {qLN北方站长站 _ffs = 1;qLN北方站长站 gk = 0;qLN北方站长站 } else if ((code < 31 || code > 41) &&qLN北方站长站 (code < 16 || code > 18) && code != 9 && code != 8 ) {qLN北方站长站 gk = 1;qLN北方站长站 } else {qLN北方站长站 gk = 0;qLN北方站长站 }qLN北方站长站 if (!_ffs && (id == 'fp' || id == 'st')) {qLN北方站长站 if (code == 9) {qLN北方站长站 if (box.value == '' ||qLN北方站长站 (box.value != '' && (at == 1 || ev.shiftKey))) { Webjx.Com qLN北方站长站 mt();qLN北方站长站 } else if (id == 'st' && box.value != '' && at == 0) {qLN北方站长站 at = 1;qLN北方站长站 mt();qLN北方站长站 }qLN北方站长站 } else if (id == 'fp' && gk == 0 && (box.value == '' && st == 0) &&qLN北方站长站 !ev.shiftKey && !ev.ctrlKey && !ev.altKey) {qLN北方站长站 d.getElementById('mk').focus();qLN北方站长站 d.getElementById('mk').blur(); Webjx.Com qLN北方站长站 } else if (gk == 1) {qLN北方站长站 at = 0;qLN北方站长站 }qLN北方站长站 } else if ((id == 'mk2' && box.value != '' && ev.shiftKey && code == 9) ||qLN北方站长站 (id == 'm6' && !ev.shiftKey && code == 9)){qLN北方站长站 d.getElementById('mk').focus();qLN北方站长站 } else if (!_ffs && gk == 1 && el.type != 'text' && !ev.ctrlKey &&qLN北方站长站 !ev.altKey) {qLN北方站长站 box.value = '';qLN北方站长站 box.focus();qLN北方站长站 }qLN北方站长站 } qLN北方站长站 |
qLN北方站长站
在函数kd中,从两个地方调用函数mt。通过使它成为一个内部函数,我们能有效的减少kd所用到的全局变量的数目,这将降低了干扰其他组件的可能性。kd依旧是一个烂摊子,但它现在不是一无是处的烂摊子。qLN北方站长站
共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面