jquery插件使用的理解,块级域引用参数。

jquery插件的扩建。。。大家应该是耳熟能祥了。。。

大致是这样的

(function($){

$.prototype.add = function(a,b){

//扩建插件内容

}

})(jQuery);

刚开始有点疑惑。。。

这里是执行了一个匿名函数,将jQuery这个函数作为一个参数传递进去。

一开始有点疑惑。明明这是js模仿块级域的一种方式。当跳出函数时,$是会被销毁的

为什么还这么做。。

后来我先做了个实验

var aquery =  function(){

this.age = 2;

};

var test = 2;

(function($){

$=7;

})(test);

发现test值根本没变。。。  这才是正常的  因为$销毁了嘛。。

后来我又写了个

var aquery =  function(){

this.age = 2;

};

(function($){

$.prototype.add = function(a,b){

alert(a+b);

}

)(aquery)

这个时候发现aquery.prototype中有了add这个函数

这才潘然醒悟。。。这里引入的是引用类型。。

$指向的堆内存的对象和aquery指向的是同一个地址

函数执行完毕。。$销毁。。

但是aquery依然指向那个地址。。所以这个操作其实是起了作用了。。

相关推荐