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
变量。而且,该函数的执行速度可能较慢。并且使用局部变量允许使用它的引用位于函数中的多个位置(这是经常需要的),而不是强制进入单个序列代码块。