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));