1:开发JQuery插件的方法:

     定义jQuery.fn.插件名 = function(){};  

  原理:    

   我们给jQuery.fn.插件名的同时,其实就是等价jQuery.prototype.插件名。 这个‘=’等号,是一种地址赋值,它指向后面的js对象。并不是值拷贝所以要注意一种面向对象的思想,堆栈原理。第一次我看到这种方法很不明白,因为我没有体会到引用,这一说法,jQuery.fn  和 jQuery.prototype 相当于引用指向堆中的对象。

   jQuery的api提供了开发插件的两种方法:

   jQuery.fn.extend(object);  jQuery的prototype添加方法,即每个jQuery对象都可以使用这个方法,也就是给jQuery对象添加方法,我们上面的那种方法,其实就是属于这个。
   jQuery.extend(object); 
给jQuery本身添加方法,为扩展jQuery类本身.为类添加新的方法,可以直接使用$.方法使用

 


 

2:js的继承

  

  1. function Animal(){} 
  2. function Dog(){} 
  3. Dog.prototype = Animal.prototype; /*new Animal()也可以*/
  4. var dog = new Dog(); 
  5. alert(dog instanceof Dog);  --->ture
  6. alert(dog instanceof Animal) --->ture

----> alert(dog instanceof Animal) 会发现为ture。 包括Dog的prototype的constructor也变成了Animal(){}  并且包括Dog实例    alert(dog.constructor); 也变成了function Animal(){}

3:尽量多使用callback

   由于 JavaScript 语句(指令)是逐一执行的 - 按照次序 ,执行完动画 事件 之后,位于其后的语句可能会产生错误或页面冲突,因为动画事件等完成后会对其后的语句发生音响。为了避免这个情况,应该尽量使用添加 Callback 函数。

$(selector).hide(speed,callback)

callback 参数是一个在 hide 操作完成后被执行的函数。callback参数是前面的动作100%完成后,才执行。

4:JQuery中利用$(function)代替$("document").ready(function);的原理

 

    jQuery javascript 细节原理剖析_休闲_02

   他会去判断$()里面写的是什么,如果是function则就把他作为页面加载完后的处理措施,具体可以看 ready(seletor);