jQuery函数声明解释

时间:2011-12-12 20:58:36

标签: javascript jquery function syntax declaration

我已经打开了jQuery 1.7.1库并想学习代码,但我发现这些函数是以奇怪的方式声明的(对我而言)。例如:

show: function() {
        //some code here
},

我学会了以这种方式定义功能:

function show() {
  //some code here
}

有人可以解释一下为什么 show 函数不是第二种方式编写的(就像大多数互联网上的教程一样)?

4 个答案:

答案 0 :(得分:6)

这是因为它在一个对象中。 Object Literals以这种方式定义其属性:

{
    name: value,
    //OR
    'name': value
}

其中value几乎可以是任何数字,字符串,函数甚至是其他对象。在JavaScript中,您还可以声明anonymous functions并将它们分配给变量。实际上,以下声明具有相同的效果:

//declares the myFunc1 function
function myFunc1() {}
//declares an anonymous function and assigns it to myFunc2
var myFunc2 = function() {};

//you can now call either like so:
myFunc1();
myFunc2();

所以,如果我有一个对象并且我希望它的一个属性是一个函数,那么将这两个概念结合起来我会这样做:

var myObj = {
    name: 'My Object',
    init: function() {
        return 'Initializing!';
    },
    version: 1.0
};

alert(myObj.init());

然后您将获得输出:Initializing!。请务必查看Mozilla Developer Network上的精彩文档和教程,包括他们的JavaScript Tutorial Series

希望这有帮助!

答案 1 :(得分:5)

第一种方式编写它实质上是将函数设置为对象的属性。

例如:

// I can create a new empty object
var myObject = {};

// or I can create a new object with a basic property
var myObject = { 
        color: "blue" 
    };

// I can also create an object with methods (like jQuery)
var myObject = { 
        color: "blue", 
        showColor: function(){ 
            alert(this.color); 
        } 
    };

// and you can use the object like this
myObject.showColor(); // calls the showColor method and will alert "blue"

这有助于jQuery封装,命名空间和组织代码。

以下是一些非常好的文章:

答案 2 :(得分:2)

第一个声明,即show: function,将show定义为具有类型函数的对象中的字段。第二个在当前范围内声明了一个名为show的函数(可能是全局?)

答案 3 :(得分:1)

它们被描述为js对象函数。在这种情况下:

var jQuery = {
    show: function(){
        //some code here
    }
}

所以你可以像jQuery.show()那样访问它。

我想说乍得的答案对于深入研究来说是最准确的。您应该研究它们,因为它们可以彻底改变您以非常简洁的方式编写js的方式,这种方式与其他库的冲突更不容易。