我想知道在javascript中编写函数的方式是否相同。这些在javascript中定义函数的方式是否相等?
对我来说,他们似乎产生了相同的结果,但在他们可以不同?
第一种方式:
(function(){
alert('ciao')
})();
方式二:
new function bar(){alert('ciao')};
我想知道在javascript中编写函数的方式是否相同。这些在javascript中定义函数的方式是否相等?
对我来说,他们似乎产生了相同的结果,但在他们可以不同?
第一种方式:
(function(){
alert('ciao')
})();
方式二:
new function bar(){alert('ciao')};
第二个返回函数的一个新实例,就好像它是一个构造。
所以,这些都是equivelent:
传统方法:
function bar() {
this.x = 5;
};
var x = new bar();
懒惰的单行。
var x = new function bar() { this.x = 5; };
唯一的区别是你不能在以后重用栏。
如果您不相信我,请在两个示例上尝试console.log(x.y);
。
你的第一个例子是一个没有实例化的匿名函数,它只是被调用。
第一个执行的功能,并返回它的结果。第二个执行该函数并返回一个对象。
编辑:例如:
清除重复。 http://stackoverflow.com/questions/1140089/how-does-an-anonymous-function-in-javascript-work(可以挤奶这个问题:P) – Layke
舌头在脸颊答案:不同的是,第二个是坏的形式和第一个是普遍可以接受的。 – tjameson