Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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,公共部分: var ext="txt", filename; 您喜欢哪种代码 这个: function changeDocTitle() { document.title = filename + ext; } filename = "untitled"; changeDocTitle(); function changeDocTitle(filename) { document.title = filename + ext; } changeDocTitle(

公共部分:

var ext="txt", filename;
您喜欢哪种代码

这个:

 function changeDocTitle() {
      document.title = filename + ext;
    }
 filename = "untitled";
 changeDocTitle();
function changeDocTitle(filename) {
  document.title = filename + ext;
}
changeDocTitle(filename = "untitled");
或者这个:

function changeDocTitle(filename) {
  document.title = filename + ext;
}
changeDocTitle(filename = "untitled");
也请告诉我原因。
我知道他们做同样的事情,但是性能有什么不同吗?

您可能来自Python世界,在那里,
函数(变量=值)
有其意义。在第二个示例中,创建一个名为
filename
的新变量,并为其赋值
“untitled”
,然后将该值传递给函数。我怀疑这是你想要做的,除非你以后需要
filename

如果需要
文件名
请执行以下操作:

var filename = "untitled";
changeDocTitle(filename);
如果您不只是这样做:

changeDocTitle("untitled");

根据@Mad Echet在前面的回答中的评论,您需要一个可以同时更改文件名和文档标题的函数

就效率而言,执行的行数或调用的函数数越多,所用的时间就越长

但是你在这里没有太多的选择。最好将这两个函数包装为一个函数:

function changeFilenameAndDocTitle(newFileName) {
  filename = newFileName; 
  document.title = newFileName + ext;
}
并使用参数按建议调用它

changeFilenameAndDocTitle("untitled");

严格地说,在现代浏览器中,这种执行会在一瞬间发生,然后再次取决于您每次是否只想执行这些操作或更复杂的操作。

传递参数比依赖父范围中的变量更有效。
(filename=“untitled”)
-为什么?有一个变量,它的值也应该更改。变量您可以根据需要更改它。在两个示例中,您都缺少ext变量。您可能依赖全局变量,这是一种不好的做法。有一个全局变量名为
filename
。每当文件名更改时,都应该运行该函数。所以我只想知道我是否应该运行一行来更改
文件名
并运行函数。而不是两行。好的,但是你后来添加了这个部分。我想不出哪种情况会对性能产生很大影响。如果您已经有一个全局变量,在不将其传递给函数的情况下调用它将节省一些空间,但不会产生任何影响。借助外部变量来节省空间不是很符合Javascripty,但这不是一般规则。