静态方法与实例方法共享设计-jquery学习笔记
2015-04-09 16:06
441 查看
jquery里面有两种方法,如下
请读者想想,怎么样能够用一个方法实现两个方法?
请读者也做一下下面这个例子思考思考,
当代码是
当代码是
答案如下,据说这段代码是jquery的核心部分,打通了六脉
$(selector).each();//实例方法 $.each();//静态方法
请读者想想,怎么样能够用一个方法实现两个方法?
请读者也做一下下面这个例子思考思考,
当代码是
$.sayHello()的时候输出Hello
当代码是
$('Jose').sayHello()的时候输出 Hello, i am Jose
答案如下,据说这段代码是jquery的核心部分,打通了六脉
var $ = function(a){ return new $.prototype.init(a); }//实例$函数的时候,返回的是init的实例对象,在后面可以看到,init的实例对象是通过init.prototype生成的,而我们把init.prototype = $.prototype了,所以返回的对象就是以$.prototype生成的! $.sayHello = function(args){ if(args) console.log("Hello,"+"I am "+args); else console.log("Hello"); }//静态方法很容易实现 $.prototype = { init:function(a){ this.a = a; //实例初始化a }, constructor:$, sayHello:function(){ return $.sayHello(this.a); //用实例的a作为参数调用静态方法 }, a:null }//这儿就是对象的原型了,尽管返回的是init的实例对象,也是通过这个原型产生的 $.prototype.init.prototype = $.prototype; $.sayHello(); $('Jose').sayHello();
相关文章推荐
- jQuery源码分析9--静态与实例方法共享设计
- Ext学习笔记 - NameSpace,类实例属性,类实例方法,类静态方法
- Ext学习笔记01 - NameSpace,类实例属性,类实例方法,类静态方法
- [原创]java WEB学习笔记102:Spring学习---Spring Bean配置:bean配置方式(工厂方法(静态工厂方法 & 实例工厂方法)、FactoryBean) 全类名
- Ext学习笔记01 - NameSpace,类实例属性,类实例方法,类静态方法
- JavaScript 学习笔记十四 this特性,静态方法 和实例方法,prototype
- Python学习笔记——实例方法和静态方法
- python学习笔记-实例方法、类方法、静态方法、属性方法
- jQuery源码研究分析学习笔记-静态方法和属性(10)
- JavaScript 学习笔记十四 this特性,静态方法 和实例方法,prototype
- JavaScript 学习笔记十四 this特性,静态方法 和实例方法,prototype
- Spring学习笔记九--静态工厂方法和实例工厂方法
- java学习笔记4--java 静态方法和实例方法的区别
- jQuery学习笔记--jQuery的ajax方法调用实例
- NET 应用架构指导 V2 学习笔记(六) 软件架构和设计方法
- NET 应用架构指导 V2 学习笔记(七) 软件架构和设计方法
- java 设计模式 学习笔记(9) 模板方法模式
- jQuery-focus()和blur()方法-文本框单击字体消失及移开灰色显示 学习笔记七
- HeadFirst 设计模式学习笔记8--模板方法模式
- 设计模式学习笔记(十六)——Template Method模板方法模式