2012-07-12 30 views
0

是什麼是什麼)函數(){}和新功能(之差{}

var Basket = function(){} 

一個具有new function(),而另一隻是有function()之間的差異。另外一個使用var

+1

這可能幫助:http://stackoverflow.com/questions/2274695/新功能與小寫f-in-javascript – techfoobar 2012-07-12 12:32:07

+0

更改標題以更好地反映問題。這裏沒有jQuery。 – Quentin 2012-07-12 12:32:31

+0

它們都不是jQuery對象。這只是很好的JavaScript。 – Christoph 2012-07-12 12:32:50

回答

2

它們不是jQuery對象。這是基本的JavaScript語法。

包含var與否之間的差異在於省略了var會使變量(RGBCatcher)在全局範圍內隱式聲明,這是不好的做法;您應始終使用var聲明。

function本身聲明一個函數(在這種情況下,它是一個函數表達式),因此您可以調用Basket()來執行指向Basket變量的函數。

new function對由function構造創建的匿名函數調用new;它與以下內容相同(當然除非你沒有創建一個名爲Constructor的函數)。

function Constructor() { 

} 

var RGBCatcher = new Constructor(); 
+0

我不明白你爲什麼需要一個函數名爲Basket的變量。說什麼函數Baset()和var Basket = function(){}之間的區別是什麼?{} – 2012-07-12 13:15:51

+0

@Ben_hawk:請參閱http://stackoverflow.com/questions/1013385/what-is-the-difference-between-a-function-expression -vs申報合的javascrip – Matt 2012-07-12 13:16:18

0

請按照此線程:

`new function()` with lower case "f" in JavaScript

var a = new function(){ 

    var member = '1'; 
    alert(member); 
} 

//警報1

var b= function(){ 
    alert('2'); 
    return '2'; 
}(); 

//警報2

(function(){ 
    alert ('3'); 
    return '3'; 
})(); 

//警報3

alert (a); 

//警報[對象對象]

alert (b); 

//警報2

相關問題