繁体   English   中英

这些方式在javascript中定义函数是否相等?

[英]Are these way to define function in javascript equal?

我想知道以下javascript中的写函数是否相等。

对我而言,它们似乎产生了相同的结果,但它们可能会有什么不同?

第一种方式:

(function(){
    alert('ciao')
})();

第二种方式:

new function bar(){alert('ciao')}; 

第二个返回函数的新实例,就好像它是一个构造函数。

所以,这些都是公平的:

传统方法:

function bar() {
    this.x = 5;
};
var x = new bar();

懒惰的单行。

var x = new function bar() { this.x = 5; };

唯一的区别是你以后不能重复使用吧。

如果你不相信我,试试console.log(xy); 两个例子。

你的第一个例子是一个匿名函数,它没有被实例化,只是被调用。

第一个执行函数并返回它的结果。 第二个执行函数并返回一个对象。

编辑:示例:

在此输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM