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对象链式操作代码(jquery)
虽然现在慢慢减少了对jQuery的使用(项目上还是用,效率高点.平时基本不用了),希望从而减少对jQuery的依赖度. 但是这链式操作的方式实在吸引人(貌似现在不少新库都采用了链式操作). 新手无畏嘛,所以写了以下代码.主要是避免以后又忘了,呵呵. 复制代码 代码如下: window.k = function() { return new k.fn.init(arguments); } k.fn = k.prototype = { init:function() { this.length =
-
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 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中setTimeout支持链式操作的方法
修改很简单,通过参数判断,然后返回下promise对象 复制代码 代码如下: (function() { var timeout = setTimeout; window.setTimeout = function(fn, time) { if (!time) { time = fn; return $.Deferred(function(dfd) { timeout(function() { dfd.resolvel(
-
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
-
JS链式调用的实现方法
链式调用 链式调用其实只不过是一种语法招数.它能让你通过重用一个初始操作来达到用少量代码表达复杂操作的目的.该技术包括两个部分: 一个创建代表HTML元素的对象的工厂. 一批对这个HTML元素执行某些操作的方法. 调用链的结构$函数负责创建支持链式调用的对象 复制代码 代码如下: (function() { /* * 创建一个私有class * @param {Object} els arguments 所有参数组成的类数组 */ function _
-
javascript简单链式调用案例分析
本文实例讲述了javascript简单链式调用方法.分享给大家供大家参考,具体如下: jQuery用的就是链式调用.像一条连接一样调用方法. 链式调用的核心就是return this;,每个方法都返回对象本身. 下面是简单的模拟jQuery的代码: <script> window.$ = function (id) { return new _$(id); } function _$(id) { this.elements = document.getElementById(id); } _$
-
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
-
JavaScript 异步调用框架 (Part 4 - 链式调用)
现实开发中,要按顺序执行一系列的同步异步操作又是很常见的.还是用百度Hi网页版中的例子,我们先要异步获取联系人列表,然后再异步获取每一个联系人的具体信息,而且后者是分页获取的,每次请求发送10个联系人的名称然后取回对应的具体信息.这就是多个需要顺序执行的异步请求. 为此,我们需要设计一种新的操作方式来优化代码可读性,让顺序异步操作代码看起来和传统的顺序同步操作代码一样优雅. 传统做法 大多数程序员都能够很好的理解顺序执行的代码,例如这样子的: 复制代码 代码如下: var firstResult
-
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
-
JavaScript 对象链式操作测试代码
虽然现在慢慢减少了对jQuery的使用(项目上还是用,效率高点.平时基本不用了),希望从而减少对jQuery的依赖度. 但是这链式操作的方式实在吸引人(貌似现在不少新库都采用了链式操作). 新手无畏嘛,所以写了以下代码.主要是避免以后又忘了,呵呵. 复制代码 代码如下: window.k = function() { return new k.fn.init(arguments); } k.fn = k.prototype = { init:function() { this.length =
-
学习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
随机推荐
- Python实现读取目录所有文件的文件名并保存到txt文件代码
- SQL2008中SQL应用之- 死锁(Deadlocking)
- jQuery实现的图片轮播效果完整示例
- 原生JS实现首页进度加载动画
- ES6中新增的Object.assign()方法详解
- 谈如何与客户进行网站构建的沟通
- CentOS命令行下装oracle 12c的方法(命令行模式安装)
- asp.net后台如何输出js脚本使用什么方法可以实现
- 浅析ASP.NET路由模型工作原理
- php gd2 上传图片/文字水印/图片水印/等比例缩略图/实现代码
- 解析C++浮点数无效值的定义与无效值判定的小结
- PHP文本操作类
- JavaScript制作简单的日历效果
- jQuery插件datepicker 日期连续选择
- javascript操作Cookie(设置、读取、删除)方法详解
- 基于NodeJS的前后端分离的思考与实践(五)多终端适配
- JS验证控制输入中英文字节长度(input、textarea等)具体实例
- SQL server中字符串逗号分隔函数分享
- jQuery中的val()示例应用
- 把ImageMagic库编译进nginx服务器的一些必要配置