Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更换';与';立即起作用_Javascript - Fatal编程技术网

Javascript 更换';与';立即起作用

Javascript 更换';与';立即起作用,javascript,Javascript,我正在重构一些代码: with (form.proxy_settings) { PutValue("Usage", 1); PutValue("Server", 2); PutValue("ServerPort", 3); PutValue("Login", 3); } 我想用删除。我应该这样做吗 (function() { ps.PutValue("Usage", 1); ps.PutValue("Server", 2)

我正在重构一些代码:

with (form.proxy_settings) {
      PutValue("Usage", 1);
      PutValue("Server", 2);
      PutValue("ServerPort", 3);
      PutValue("Login", 3);
}
我想用删除
。我应该这样做吗

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

或者在这种特殊情况下,只需将
form.proxy\u settings
添加到需要的位置是否更好?

首先,如果使用函数,则需要声明参数
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);

想要用
删除
,这是一个很好的选择。它当然有它的用途,但它看起来并不是其中之一。@lbstr-我只是好奇,
构造的“好”用途是什么?@jfriend00我见过的最酷的用法是在,但我们大多数人都没有研究约翰是那种类型的东西。我还读了一些关于JavaScript控制台如何使用它们使某些东西像本地一样可用的内容,但我似乎找不到。我从来没有发现在我自己的代码中需要使用
with
。@lbstr-和
严格的
模式禁止使用
with
。因此,如果我不需要变量,我会执行立即函数,在本例中是
ps
,要在
之外使用命令访问
块?@Maximus-这将是主要区别,除了您可能已经在自己的函数中,因此该函数之外的任何人都无法以任何方式访问
ps
变量。而且,该函数的执行速度可能较慢。并且使用局部变量允许使用它的引用位于函数中的多个位置(这是经常需要的),而不是强制进入单个序列代码块。