Javascript连锁调用的原理与实现

作者 : 奇兔源码吧 本文共4116个字,预计阅读时间需要11分钟 发布时间: 2020-08-1 共11人阅读

ppppgnmrchttp://etwalpapers/
p这个原则的示例和javascript链调用的实现。如下:/p
什么是连锁呼叫?/p
这很容易理解,例如/p
talbrdlspacking1c1dlping
tbody
tr
td$('text').setstyle('color','red').show();/td
/tr
/tbody
/表
p通用函数调用和链调用的区别:在链调用完成后,retur方法n返回当前调用方法对象。/p
首先,让我们看看一般函数如何调用/p
创建一个简单的类/p
talbrdlspacking1c1dlping
tbody
tr
td//创建一个双类/p
pfunctioird(name)p
pthi.namename;/p
pthi.rufunctin(/p)
p文件。
p/p
p.stoprunfuctioppp
p文件。
p/p
p.sgfucnn/n/p
p文件。
p/p
p.stoping函数n(p/p)
p文件。
p/p
p/td
/tr
/tbody
/表
p(2)用法:一般调用/p
talbrdlspacking1c1dlping
tbody
tr
tdvardnewird("test");/p
pbird.run();/p
pbirdbird.sing();/p
pbird.stoting();/p
pbird.stoprun();<br>/td
/tr
/tbody
/表
talbrdlspacking1c1dlping
tbody
tr
结果如下:
/tr
/tbody
/表
p(3)总结说,这种方法的一个缺点是:重复使用对象变量/p
然后让我们看一下格式/p将上面的转换成链调用
p(1)将rtunher添加到创建的简单类,as/p
talbrdlspacking1c1dlping
tbody
tr
td//创建一个双类/p
pfunctioird(name)p
pthi.namename;/p
pthi.rufunctin(/p)
p文件。
peturnher;/r/eturnher返回当前调用方法的对象。/p
p/p
p.stoprunfuctioppp
p文件。
pretur/her;p
p/p
p.sgfucnn/n/p
p文件。
pretur/her;p
p/p
p.stoping函数n(p/p)
p文件。
pretur/her;p
p/p
p/td
/tr
/tbody
/表
p(2)使用链接调用/p
talbrdlspacking1c1dlping
tbody
tr
b/
stoping().stoping().stoprun();//resultis;//testtarttn;testttartstsing;testtaststststttt
/tr
/tbody
/表
p(3)总结说,这个调用的结果一般调用的结果相同,这种链式调用有助于简化代码编写,使代码更加简洁和可读,并避免重复使用对象变量/p。
p2.模拟jquery/p的连锁调用
第一步是用参数/p定义一个空对象
talbrdlspacking1c1dlping
tbody
tr
td(function()/p
p/lowerline:为私有变量编写
pfunctio$(英文)
p)()///程序启动时d
/tr
/tbody
/表
p步骤2,准备定义$/p上的onready方法
talbrdlspacking1c1dlping
tbody
tr
td(function()/p
p//step1,下划线:为私有变量编写
pfunction(els)
p//2步骤,准备定义一个关于美元的准备方法
p.onready函数(fn)p
根据需要在windows对象上注册对象($)
p//openinterface/p
p窗口functio$/p
pretu(rne$argumts);//返回一个对象($(")$(参数)/p,可以在函数原型上使用该方法
p/p
pfn();/p
p/p
p/p
p()/td
/tr
/tbody
/表
第三步是定义类/p的静态函数
talbrdlspacking1c1dlping
tbody
tr
方法函数n名,fn/(函数,函数本身)/p
pthi.protocolpenamefn:/p
p重新键他的;//调用键p
p:///这个函数意味着,如果向函数对象添加一个函数,将在链中调用它。
/tr
/tbody
/表
p步骤4,增加jquery库/p提供的操作函数
talbrdlspacking1c1dlping
tbody
tr
td(function()/p
p/lowerline:为私有变量编写
pfunctio$(英文)
p//2步骤,准备定义一个关于美元的准备方法
p.onready函数(fn)p
根据需要在windows对象上注册对象($)
p//openinterface/p
p窗口functio$/p
pretu(rne$argumts);//返回一个对象($(")$(参数)/p,可以在函数原型上使用该方法
p
/p
pfn();/p
p<>p>p/r/4
p/addjquery库/p提供的操作函数
p.metho(“addevent”,functio(type,f)n$/$本身就是一个继承原型链上东西的函数。/p
pfn();/p
方法("getevent",functio(fn,e)p
pfn();/p
p)/p
p()/td
/tr
/tbody
/表
p步骤5,它调用$onready方法,使用从函数类/p继承的原型返回对象
talbrdlspacking1c1dlping
tbody
tr
td
p/(1)1下行:为私有变量编写
pfunctio$(英文)
p/(2)就美元编制方法/p
p/$;/p
p.onready函数(fn)p
根据需要将对象($)注册到windows对象。
p//openinterface/p
p窗口functio
pretu(rne$argumts);//返回一个对象($(")$(参数)/p,可以在函数原型上使用该方法
p/p
pfn();/p
p/p
p/(4)p/p
p.metho(“addevent”,functio(type,f)n$/$本身就是一个继承原型链上东西的函数。/p
pfn();/p
方法("getevent",functio(fn,e)p
pfn();/p
p);/p
p//55步骤从调用$.onready方法开始,使用从函数类/p继承的原型方法返回对象
p.onrrady(fution)//p
p().添加事件("单击",函数$
p警报("单击")/p
p)/p
p)/p
p()/td
/tr
/tbody
/表
上述综合代码是/p
talbrdlspacking1c1dlping
tbody
tr
td//step3,为了使类可以扩展函数,我们定义了它/p的静态函数
方法函数n(名称,f)/(函数本身)//
pthi.protocolpenamefn:/p
p重新键他的;//调用键p
p:///这个函数意味着,如果您向函数对象添加一个函数,您将在链中调用它。
p(针对性)p
p/p/1步,下划私有变量/p
pfunctio$(英文)
p//2步骤,准备定义一个关于美元的准备方法
p/$;/p
p.onready函数(fn)p
根据需要在windows对象上注册对象($)
p//openinterface/p
p窗口functio$/p
pretu(rne$argumts);//返回一个对象($(")$(参数)/p,可以在函数原型上使用该方法
p/p
pfn();/p
p/p
p/step4,添加类/p的相应扩展名
p.metho(“addevent”,functio(type,f)$n/$是继承原型链上的东西的函数,因此可以使用method/p
pfn();/p
方法("getevent",functio(fn,e)p
pfn();/p
p);/p
从调用$.onready方法开始,使用从函数类/p继承的原型方法返回对象
p.onrrady(fution)//p
p().添加事件("单击",函数$
p警报("单击")/p
p)/p
p)/p
p()/td
/tr
/tbody
/表
p这是一个将$绑定到windows的操作,如果我们想将$绑定到指定的对象,我们可以通过更改上面的第二步和第五步来实现,/p
talbrdlspacking1c1dlping
tbody
tr
td//p
p
p//p
p//step3,因此类可以扩展函数,我们定义了它/p的静态函数
方法函数n(名称,f)/(函数本身)//
pthi.protocolpenamefn:/p
p重新键他的;//调用键p
p:///这个函数意味着,如果您向函数对象添加一个函数,您将在链中调用它。
p(针对性)p
p/p/1步,下划私有变量/p
pfunctio$(英文)
p//2步骤,准备定义一个关于美元的准备方法
p.onreadyfunctio($bj,fn)/obj传入对象/p
pif(obj)/p
根据需要在windows对象上注册对象($)
p//openinterface/p
pobj.$fuction(/p)
pretu(rne$argumts);//返回一个对象($(")$(参数)/p,可以在函数原型上使用该方法
p/p
pels/p
根据需要在windows对象上注册对象($)
p//openinterface/p
p窗口functio$/p
pretu(rne$argumts);//返回一个对象($(")$(参数)/p,可以在函数原型上使用该方法
p/p
p/p
pfn();/p
p/p
p/step4,添加类/p的相应扩展名
p.metho(“addevent”,functio(type,f)$n/$本身是一个继承原型链上的东西并直接使用方法/p的函数
pfn();/p
方法("getevent",functio(fn,e)p
pfn();/p
p);/p
从调用$.onready方法开始,使用从函数类/p继承的原型方法返回对象
pvrm;/p
p$.onready(comm,functio)//$绑定在windows/p上
pcom.$().addevent("click",fcctio")/p
p警报("单击")/p
p)/p
p)/p
p()/td
/tr
/tbody
/表
p画一幅图来理解上述过程和想法:/p
p/p

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到审核区发布,分享有金币奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"www.qitupic.com",如遇到无法解压的请联系管理员!

请激活正版授权 » Javascript连锁调用的原理与实现

常见问题FAQ