链式调用 链式调用其实只不过是一种语法招数。它能让你通过重用一个初始操作来达到用少量代码表达复杂操作的目的。该技术包括两个部分: 一个创建代表HTML元素的对象的工厂。 一批对这个HTML元素执行某些操作的方法。 调用链的结构$函数负责创建支持链式调用的对象代码如下:(function() { /* * 创建一个私有class * @param {Object} els arguments 所有参数组成的类数组 */ function _$(els) { this....
一、方法体内返回对象实例自身(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; }, method3 : function(p3){ this.prop3 = p3; return this; } } 定义了function/类ClassA。有三个属性/字段prop1,prop2,prop3,三个方法methed1,method2,...
jQuery式的方法链核心部分是三点: 1)jquery的包装器函数(也就是jQuery(),以此来构建包装器对象),以此构造函数可以产生饱含了原生DOM对象的包装器对象。 它大概是这个样子的…(当然跟官方库的规模跟功能以及实现方式都差很多,我只是写了个大概的实现方式): 呃…………我的失误,请大家如果有兴趣尝试下代码记得不要引入jQuery库,命名冲突了 代码如下:(function(){ //简化起见不支持子类选择器属性选择器等等,只接受形如".clas...
话说回来,虽然jQuery让学习前端技术的越来越多了起来,(本人就是因为学校图书馆偶然间遇到了一本jQuery基础教程(二)开始想深入的学习前端技术),关于jQuery的博文甚至多于javascript,它让编程的门槛大大的降低了,但是它隐藏了太多细节了,形如$('#id').append('<p>xxx</p>').clone().appendTo(x).end().css(...)................这样操作的模式已经很难找到常规javascript的影子。浏览器的差异仿佛一去就不见了踪影,我不认为...
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(element.slice(0,1)=='.'){ element=element.slice(1); var es = document.body.getElementsByTagName('*'); for (var i = 0, j = es.length; i $('.t...
jQuery中形如$("#txtName").addClass("err").css("font-size","12px").select().focus();的方式让人不得不为之着迷。其实现机制就是链式调用。链式调用就是调用对象的方法后返回到该对象,严格来讲它并不属于语法,而只是一种语法技巧,js令人着迷的一点就是这里。 没有返回值的方法属于赋值器方法,显然它很容易实现链式调用,前提是正确理解this指针的用法。 代码如下:function W(){ this.name="Wang Hongjian"; this.gender="m...
现实开发中,要按顺序执行一系列的同步异步操作又是很常见的。还是用百度Hi网页版中的例子,我们先要异步获取联系人列表,然后再异步获取每一个联系人的具体信息,而且后者是分页获取的,每次请求发送10个联系人的名称然后取回对应的具体信息。这就是多个需要顺序执行的异步请求。 为此,我们需要设计一种新的操作方式来优化代码可读性,让顺序异步操作代码看起来和传统的顺序同步操作代码一样优雅。 传统做法 大多数程序员都能够很...
代码如下:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Each Document</title> <script type="text/javascript"> (function(){ //创建一个自执行函数 function _$(el){ //声明一个类 this.elements = []; //用于保存DOM元素的引用 for (var i = 0; i < el.length; i++) { var el...
1、链式调用是什么 使用过JQuery 的同学应该都知道,代码如下 $('text’).setStyle('color', 'red').show();这就是链式调用,就是调用完一个方法以后,不用另起一行,重新再当前this 对象上再去调用方法。 普通的函数调用方式,如下: var sched = {wakeup: function () {console.log('Running')return this},morning: function () {console.log('Going shopping')return this} } sched.wakeup() // Running sched.morning() // Go...