用立即函数替换'with'

时间:2013-11-14 17:39:23

标签: javascript

我正在重构一些代码:

with (form.proxy_settings) {
      PutValue("Usage", 1);
      PutValue("Server", 2);
      PutValue("ServerPort", 3);
      PutValue("Login", 3);
}

我想删除with。我应该这样做吗?

(function() {
      ps.PutValue("Usage", 1);
      ps.PutValue("Server", 2);
      ps.PutValue("ServerPort", 3);
      ps.PutValue("Login", 3);
}(form.proxy_settings);

或者,在这种特殊情况下,只需将form.proxy_settings添加到需要的地方就更好了吗?

1 个答案:

答案 0 :(得分:2)

首先,如果使用函数,则需要声明参数ps

(function(ps) {
      ps.PutValue("Usage", 1);
      ps.PutValue("Server", 2);
      ps.PutValue("ServerPort", 3);
      ps.PutValue("Login", 3);
}(form.proxy_settings);

但是,你真的不需要执行一个函数。这也可以正常工作,并且是一种常见的javascript设计模式,可以节省输入并提高性能,而不是使用每行中较长的名称:

var ps = form.proxy_settings;
ps.PutValue("Usage", 1);
ps.PutValue("Server", 2);
ps.PutValue("ServerPort", 3);
ps.PutValue("Login", 3);