簡體   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