javascript中的链式调用
jQuery中形如$("#txtName").addClass("err").css("font-size","12px").select().focus();的方式让人不得不为之着迷。其实现机制就是链式调用。链式调用就是调用对象的方法后返回到该对象,严格来讲它并不属于语法,而只是一种语法技巧,js令人着迷的一点就是这里。
没有返回值的方法属于赋值器方法,显然它很容易实现链式调用,前提是正确理解this指针的用法。
代码如下:
function W(){
this.name="Wang Hongjian";
this.gender="male";
}
W.prototype.sayHi=function(){
alert("Hello,everybody\nMy name is " + this.name);
return this;
};
W.prototype.doSomething=function(){
alert("I'm working");
return this;
}
W.prototype.sayGoodbye=function(){
alert("Goodbye,everybody");
return this;
};
var w=new W();
w.sayHi().doSomething().sayGoodbye();
javascript链式调用 http://www.jb51.net/
function W(){
this.name="Wang Hongjian";
this.gender="male";
}
W.prototype.sayHi=function(){
alert("Hello,everybody\nMy name is " + this.name);
return this;
};
W.prototype.doSomething=function(){
alert("I'm working");
return this;
}
W.prototype.sayGoodbye=function(){
alert("Goodbye,everybody");
return this;
};
var w=new W();
w.sayHi().doSomething().sayGoodbye();
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
相关推荐
-
JavaScript中两种链式调用实现代码
一.方法体内返回对象实例自身(this) 复制代码 代码如下: function ClassA(){ this.prop1 = null; this.prop2 = null; this.prop3 = null; } ClassA.prototype = { method1 : function(p1){ this.prop1 = p1; return this; }, method2 : function(p2){ this.prop2 = p2; return this; }, metho
-
JavaScript中链式调用之研习
一.对象链:方法体内返回对象实例自身(this) 复制代码 代码如下: function ClassA(){ this.prop1 = null; this.prop2 = null; this.prop3 = null; } ClassA.prototype = { method1 : function(p1){ this.prop1 = p1; return this; }, method2 : function(p2){ this.prop2 = p2; return this; }, m
-
JavaScript 异步调用框架 (Part 4 - 链式调用)
现实开发中,要按顺序执行一系列的同步异步操作又是很常见的.还是用百度Hi网页版中的例子,我们先要异步获取联系人列表,然后再异步获取每一个联系人的具体信息,而且后者是分页获取的,每次请求发送10个联系人的名称然后取回对应的具体信息.这就是多个需要顺序执行的异步请求. 为此,我们需要设计一种新的操作方式来优化代码可读性,让顺序异步操作代码看起来和传统的顺序同步操作代码一样优雅. 传统做法 大多数程序员都能够很好的理解顺序执行的代码,例如这样子的: 复制代码 代码如下: var firstResult
-
JavaScript 对象链式操作测试代码
虽然现在慢慢减少了对jQuery的使用(项目上还是用,效率高点.平时基本不用了),希望从而减少对jQuery的依赖度. 但是这链式操作的方式实在吸引人(貌似现在不少新库都采用了链式操作). 新手无畏嘛,所以写了以下代码.主要是避免以后又忘了,呵呵. 复制代码 代码如下: window.k = function() { return new k.fn.init(arguments); } k.fn = k.prototype = { init:function() { this.length =
-
javascript简单链式调用案例分析
本文实例讲述了javascript简单链式调用方法.分享给大家供大家参考,具体如下: jQuery用的就是链式调用.像一条连接一样调用方法. 链式调用的核心就是return this;,每个方法都返回对象本身. 下面是简单的模拟jQuery的代码: <script> window.$ = function (id) { return new _$(id); } function _$(id) { this.elements = document.getElementById(id); } _$
-
JavaScript DSL 流畅接口(使用链式调用)实例
认真研究了一会DSL,发现了这么几件有趣的事,JavaScript用得最多的一个东西怕是链式调用 (方法链,即Method Chaining). 有意思的是Martin Flower指出: 复制代码 代码如下: I've also noticed a common misconception - many people seem to equate fluent interfaces with Method Chaining. Certainly chaining is a common tec
-
学习JavaScript设计模式(链式调用)
1.什么是链式调用 这个很容易理解,例如: $(this).setStyle('color', 'red').show(); 一般的函数调用和链式调用的区别:调用完方法后,return this返回当前调用方法的对象. function Dog(){ this.run= function(){ alert("The dog is running...."); return this;//返回当前对象 Dog }; this.eat= function(){ alert("Af
-
Javascript 链式调用实现代码(参考jquery)
Javascript链式调用 function ele(){ this.elements=[]; var element; if(typeof arguments[0]=="string"){ element=arguments[0]; if (element.slice(0, 1) == '#') { element = document.getElementById(element.slice(1)); this.elements.push(element); }else if(e
-
JS链式调用的实现方法
链式调用 链式调用其实只不过是一种语法招数.它能让你通过重用一个初始操作来达到用少量代码表达复杂操作的目的.该技术包括两个部分: 一个创建代表HTML元素的对象的工厂. 一批对这个HTML元素执行某些操作的方法. 调用链的结构$函数负责创建支持链式调用的对象 复制代码 代码如下: (function() { /* * 创建一个私有class * @param {Object} els arguments 所有参数组成的类数组 */ function _
-
JavaScript对象链式操作代码(jquery)
虽然现在慢慢减少了对jQuery的使用(项目上还是用,效率高点.平时基本不用了),希望从而减少对jQuery的依赖度. 但是这链式操作的方式实在吸引人(貌似现在不少新库都采用了链式操作). 新手无畏嘛,所以写了以下代码.主要是避免以后又忘了,呵呵. 复制代码 代码如下: window.k = function() { return new k.fn.init(arguments); } k.fn = k.prototype = { init:function() { this.length =
-
让JavaScript中setTimeout支持链式操作的方法
修改很简单,通过参数判断,然后返回下promise对象 复制代码 代码如下: (function() { var timeout = setTimeout; window.setTimeout = function(fn, time) { if (!time) { time = fn; return $.Deferred(function(dfd) { timeout(function() { dfd.resolvel(
-
javascript 支持链式调用的异步调用框架Async.Operation
复制代码 代码如下: Async = {}; Async.Operation = function(options) { options = options || {}; var callbackQueue = []; var chain = (options.chain && options.chain === true) ? true : false; var started = false; var innerChain = null; this.result = undefined
随机推荐
- JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
- 封装属于自己的JS组件
- 《JavaScript DOM 编程艺术》读书笔记之JavaScript 语法
- 一行代码实现纯数据json对象的深度克隆实现思路
- jQuery实现为控件添加水印文字效果(附源码)
- 详解Python进程间通信之命名管道
- 在Django的URLconf中使用多个视图前缀的方法
- JS中的进制转换以及作用
- 收藏大量的瑞星2006序列号!!!
- 详解Java的MyBatis框架中动态SQL的基本用法
- 日常收集整理oracle trunc 函数处理日期格式(很实用)
- JQuery实现左右滚动菜单特效
- 省市区三级联动jquery实现代码
- js+html5实现的自由落体运动效果代码
- JavaScript的String字符串对象常用操作总结
- Java使用Deque实现堆栈的方法
- C#多线程处理多个队列数据的方法
- php微信开发之上传临时素材
- Python 查看文件的读写权限方法
- 浅谈Python中range和xrange的区别