2012-07-12 32 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

相关问题