Jquery插件语法解释?

时间:2011-11-28 09:25:29

标签: jquery jquery-plugins

我在jQuery中看到了一些插件代码

其中一个是重载jQuery中的addClass方法(例如:当你添加类 - 调用myfunction()时)。

(function(){

    var originalAddClassMethod = jQuery.fn.addClass;

    jQuery.fn.addClass = function(){
        // Execute the original method.
        originalAddClassMethod.apply( this, arguments );

        // call your function
        // this gets called everytime you use the addClass method
        myfunction();

    }
})();

我不明白的事情:

他为什么要创建一个闭包?

我可以在var的普通func中使用私有成员,但它仍然只对本地范围可见.....所以?

你可以向我解释一下吗?

他从封闭中获得了什么?

我会理解,如果他将$标志发送给该功能......但他没有

2 个答案:

答案 0 :(得分:2)

我认为已添加闭包,因此变量originalAddClassMethod未在全局范围(或​​父范围)中定义,并且对插件是私有的。

你说:

  

我可以在普通func中使用私有成员和var,但它仍然只对本地范围可见。

这正是在这里所做的:该函数是匿名的,但仍然是“正常的”。

答案 1 :(得分:2)

如果在函数之外使用var,您仍然会创建一个全局变量(因为这是您所在的范围)。因此,您需要将所有代码包装在函数中以获得新的范围。

他没有使用该函数来确保$指向jQuery但始终使用jQuery只是意味着他在某种程度上是受虐狂并希望代码不太可读。 ;)