JavaScript设计模式-8.链式调用
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>javascript高级语法8-链式调用</title>
- </head>
- <body>
- <div id="box"></div>
- <script type="text/javascript">
- function demo1(){
- (function(){
- //创建一个cat类
- function Cat(name){
- this.name = name;
- this.run = function(){
- document.write(this.name+" start run"+"<br/>")
- }
- this.stopRun = function(){
- document.write(this.name+" stop run"+"<br/>")
- }
- this.sing = function(){
- document.write(this.name+" start singing"+"<br/>")
- }
- this.stopSing = function(){
- document.write(this.name+" stop sing"+"<br/>")
- }
- }
- //测试
- var c = new Cat("maomi");
- c.run();
- c.sing();
- c.stopRun();
- c.stopSing();
- })()}
- function demo2(){
- (function(){
- //创建一个cat类
- function Cat(name){
- this.name = name;
- this.run = function(){
- document.write(this.name+" start run"+"<br/>")
- return this;
- }
- this.stopRun = function(){
- document.write(this.name+" stop run"+"<br/>")
- return this;
- }
- this.sing = function(){
- document.write(this.name+" start singing"+"<br/>")
- return this;
- }
- this.stopSing = function(){
- document.write(this.name+" stop sing"+"<br/>")
- return this;
- }
- }
- //测试
- var c = new Cat("lili");
- c.run().sing().stopRun().stopSing();
- })()
- }
- //为了给类(Function类)扩展函数,定义一个它的静态函数
- Function.prototype.method = function(name,fn){
- this.prototype[name] = fn;
- return this;
- };
- (function(){
- //模仿jquery链式调用
- function _$(els){};
- //准备方法
- _$.onready = function(fn){
- //按需求把对象(_$)注册到window上
- window.$ = function(){
- return new _$(arguments);
- }
- fn();
- }
- //链式的对象增加jquery库提供的操作函数。
- _$.method("addEvent",function(type,fn){
- fn();
- }).method("getEvent",function(fn,e){
- fn();
- }).method("addClass",function(className,fn){
- fn();
- }).method("removeClass",function(className,fn){
- fn();
- }).method("replaceClass",function(oldClass,newClass){
- fn();
- }).method("getStyle",function(el,fn){
- fn();
- }).method("setStyle",function(el,fn){
- fn();
- }).method("load",function(url,fn){
- fn();
- })
- //开始使用
- _$.onready(function(){
- $("#box").addEvent("click",function(){
- alert("click event")
- })
- })
- })()
- </script>
- </body>
- </html>
JavaScript设计模式-8.链式调用的更多相关文章
- JavaScript中的链式调用
链模式 链模式是一种链式调用的方式,准确来说不属于通常定义的设计模式范畴,但链式调用是一种非常有用的代码构建技巧. 描述 链式调用在JavaScript语言中很常见,如jQuery.Promise等, ...
- 《javascript设计模式》笔记之第六章:方法的链式调用
这一章要实现的就是jQuery的那种链式调用,例子: $(this).setStyle('color', 'green').show(); 一:调用链的结构: 首先我们来看一下最简单的$()函数的实现 ...
- JavaScript设计模式——方法的链式调用
方法的链式调用: (function() { //私有类 function _$ (els) { this.elements = []; for(var i = 0, len = els.length ...
- 关于JavaScript中的setTimeout()链式调用和setInterval()探索
http://www.cnblogs.com/Wenwang/archive/2012/01/06/2314283.html http://www.cnblogs.com/yangjunhua/arc ...
- javascript学习(10)——[知识储备]链式调用
上次我们简单的说了下单例的用法,这个也是在我们java中比较常见的设计模式. 今天简单说下链式调用,可能有很多人并没有听过链式调用,但是其实只要我简单的说下的话,你肯定基本上都在用,大家熟知的jQue ...
- js原生设计模式——2面向对象编程之js原生的链式调用
技巧点:对象方法中返回当前对象就可以链式调用了,即方法中写return this; <!DOCTYPE html><html lang="en"><h ...
- JavaScript实现链式调用
学习Jquery的时候,我们通常会看到链式调用的写法 $(window).addEvent('load', function(){ $('test').show().setStyle('color', ...
- 如何写 JS 的链式调用 ---》JS 设计模式《----方法的链式调用
1.以$ 函数为例.通常返回一个HTML元素或一个元素集合. 代码如下: function $(){ var elements = []; ;i<arguments.length;i++){ v ...
- JavaScript链式调用
1.什么是链式调用? 这个很容易理解,例如 $('text').setStyle('color', 'red').show(); 一般的函数调用和链式调用的区别:链式调用完方法后,return thi ...
随机推荐
- PHP 实现简单搜索功能
方案:问答搜索 1. 搜索结果列表,高亮显示搜索关键词内容 2. 用户输入内容,点击搜索 2.1 获取用户的搜索内容: 2.2 调用分词服务,获取对搜索内容的分词: ...
- ASP.NET Core 中的应用程序启动 Startup
ASP.NET Core 应用使用Startup类来作为启动类. Startup类中包含了ConfigureServices方法,Configure方法,IConfiguration,IHos ...
- Android Camera的使用(一) 读书笔记
原文地址 https://blog.csdn.net/junzia/article/details/52301199 拍照步骤1.添加权限2.开启相机时check一下是否有摄像头3.对预览大小.照片大 ...
- Win7/Win8/Win8.1下配置apache+php运行缓慢问题解决方法
将以下内容复制另存为 xxx.reg,双击导入后重启机器! Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\Curren ...
- Hibernate 之HQL数据查询
1. HQL简介 HQL是面向对象的查询语言,与SQL查询语言相比,虽然在语法上类似,都是运行时进行解析,但HQL并不像SQL那样操作的是数据表,列等数据库对象,HQL所操作的对象是类,对象,属性等. ...
- SSH小项目整合的简单记录
第一步.导入sprint4.struts2和hibernate4的jar包 struts2的jar包 commons-fileupload-1.3.3.jar commons-io-2.5.jar c ...
- sharepoint 版本信息查看
#检查版本:# PowerShell script to display SharePoint products from the registry. Param( # decide on wheth ...
- Redis数据库结构与读写原理
此文已由作者赵计刚薪授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 1.数据库结构 每一个redis服务器内部的数据结构都是一个redisDb[],该数组的大小可以在redi ...
- C博客的第1次作业--分支,顺序结构
1.本章学习总结 1.1 思维导图 1.2本章学习体会,代码量学习体会 1.2.1学习体会 初步了解什么是C语言,明白了这门语言的基本运行功能.了解了关于c语言结构上,语法上的基本知识.下一步要进一步 ...
- oracle根据四位年周取当周周一的日期函数
create or replace function FUNC_GET_DATE_BY_WEEK( theYearWeek IN VARCHAR2)return date is normalDate ...