哪种代码更有效?(正在调用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,但这不是一般规则。