2017-06-02 73 views
0

有人可以告诉我,我可以在JavaScript中声明一个函数到var并执行它在相同的展望(程序行)?函数自变量在var

var tmp = 0, 
a = function() { 
    ++tmp; /*rest of code*/ 
}; 
a(); 
console.log(tmp); 
+1

如果将它粘贴到控制台中会发生什么?它工作吗? – putvande

+1

你有没有试过_doing it_? – doutriforce

+0

我得到1,我想得到2:一次增加功能初始化和下一个功能执行 – Kamczatka

回答

1

如果围绕函数声明parentesis你得到一个表达式。 assigment也是一个表达式(被评估为赋值),您可以利用这个事实来获得您的结果。

var tmp = 0, a; 
 
(a = function() { ++tmp;})(); 
 
a(); 
 
console.log(tmp);

说,对我来说,我不希望有这样的阅读代码。这很容易出错和误解。

+0

可怕的代码:+1 – Bergi