Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.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 abc=new window(); window.show() 但是我想要一些类似于 (var abc= new window).show() 怎么样 var abc=new window();abc.show(); 或者在一份声明中 new window().show(); 或者使用ev

在我毕生的追求中,我想把我的全部代码写在一行上,并让所有精神变态的维护者做噩梦,我问了以下问题:

是否有任何方法可以实例化一个对象,将其分配给一个变量,并在同一行的实例化上调用一个函数

我有:

var abc=new window();
window.show()
但是我想要一些类似于

(var abc= new window).show()
怎么样

var abc=new window();abc.show();
或者在一份声明中

new window().show();
或者使用eval()


我认为qour问题的本质是:你能在表达式中使用
var

答案是否定的。
var
语句是一个语句,而不是一个表达式。但是,括号的内容必须是表达式

如果您对技术细节感兴趣,请参阅,A.3和A.4


编辑:但是您可以使用

var abc;
(abc = new window()).show();

…我想这在这里是毫无意义的。

当然。使用匿名函数可以在表达式中嵌入语句,因此:

var abc = (function (abc) { return abc.show(), abc }(new window));

你见过缩小的JavaScript吗?整个框架只能是一行代码,我不知道为什么会被否决。只要有点头脑,你就会意识到这个问题显然是关于一条语句的,不管行数多少。@Pumbaa80来自OP:“在一行上写我的全部代码”,“在同一行上”。使用分号这样做不是一个好的编码实践,它会破坏将代码粘在一行上的目的。(例如:这是2条语句而不是1条)将其更新为一条语句。
eval
的使用在ES5严格模式或ES.next中不起作用,因为严格模式消除了
eval
引入新局部变量的能力,ES.next建立在严格模式上。
var abc = (function (abc) { return abc.show(), abc }(new window));