-
立即调用表达式 任何库与框架设计的第一个要点就是解决命名空间与变量污染的问题。jQuery就是利用了JavaScript函数作用域的特性,采用立即调用表达式包裹了自身的方法来解决这个问题。 jQuery的立即调用函数表达式的写法有三种: 写法1: (function(window, factory) { factory(window) }(this, function() { return function() { //jQuery的调用 } })) 可以看出上面的代码中嵌套了2个函数,而且把一个函数作为参数传递到另一个函数中并且执行,这种方法有点复杂,我们简化一下写法: 写法2: var factory = function(){ return function(){ //执行方法 } } var jQuery = factory(); 上面的代码效果和方法1是等同的,但是这个factory有点变成了简单的工厂方法模式,需要自己调用,不像是一个单例的jQuery类,所以我们需要改成“自执行”,而不是另外调用。 写法3: (function(window, undefined) { var jQuery = function() {} // ... window.jQuery = window.$ = jQuery; })(window);查看全部
-
函数是一个对象,所以javaScript中的函数: 1,能"存储"在变量中 2,能作为函数的实参被传递 3,能在函数中被创建 4,能从函数中被返回查看全部
-
for in 语句对数组对象进行遍历潜在的bug在于:如果原生Array类被其他的js脚本库进行了原型扩展(比如多加一个toJSON方法即Array.prototype.toJSON=xxxx),那么用for in遍历扩展后的Array对象的逻辑将与遍历原生Array对象的逻辑发生差异查看全部
-
词法分析器又称扫描器,词法分析是指将我们编写的文本代码流解析为一个一个的记号,分析得到的记号以供后续语法分析使用查看全部
-
逆向匹配带来的优势是巨大的。同时我们也能够看出,在选择器结尾加上「*」就大大降低了这种优势,这也就是很多优化原则提到的尽量避免在选择器末尾添加通配符的原因。查看全部
-
end()和addBack的区别在于一个返回上一个对象,一个返回对象的集合查看全部
-
jquery对象:context(上下文),length(匹配的长度),prevObject(前一个对象),selector(选择器名称),类数组对象查看全部
-
jQuery一共13个模块: 1.核心方法 2.回调系统 3.异步队列 4.数据缓存 5.队列操作 6.选择器操作 7.属性操作 8.节点遍历 9.文档处理 10.样式操作 11.事件体系 12.AJAX交互 13.动画引擎 jQuery按理解分为五大块:1.选择器、2.DOM操作、3.事件、4.AJAX、5.动画 jQuery的设计就是抽出共同的特性使之“模块化”,更贴近S.O.L.I.D五大原则的“单一职责SRP”,好处是可以让我们很容易的来维护这个对象,通过“解耦”可以让每个职责更加有弹性的变化。 jQuery文档针对业务层的Ajax的处理提供了一系列的门面接口: .ajaxComplete() .ajaxError() .ajaxSend() .ajaxStart() .ajaxStop() .ajaxSuccess() 底层接口: jQuery.ajax() jQuery.ajaxSetup() 快捷方法: jQuery.get() jQuery.getJSON() jQuery.getScript() jQuery.post()查看全部
-
jQuery的一些操作查看全部
-
on() 方法在被选元素及子元素上添加一个或多个事件处理程序。查看全部
-
once: 确保这个回调列表只执行( .fire() )一次(像一个递延 Deferred)。 ☑ memory: 保持以前的值,将添加到这个列表的后面的最新的值立即执行调用任何回调 (像一个递延 Deferred)。 ☑ unique: 确保一次只能添加一个回调(所以在列表中没有重复的回调)。 ☑ stopOnFalse: 当一个回调返回false 时中断调用。查看全部
-
$.Callbacks()模块的开发目的是为了给内部$.ajax() 和 $.Deferred()模块提供统一的基本功能组件。它可以用来作为类似基础定义的新组件的功能。查看全部
-
在这种模式中,并不是一个对象调用另一个对象的方法,而是一个对象订阅另一个对象的特定活动并在状态改变后获得通知。订阅者也称为观察者,而被观察的对象称为发布者或主题。当发生了一个重要的事件时,发布者将会通知(调用)所有订阅者并且可能经常以事件对象的形式传递消息。查看全部
-
观察者模式 (pub/sub) 的背后,总的想法是在应用程序中增强松耦合性。并非是在其它对象的方法上的单个对象调用。一个对象作为特定任务或是另一对象的活动的观察者,并且在这个任务或活动发生时,通知观察者。观察者也被叫作订阅者(Subscriber),它指向被观察的对象,既被观察者(Publisher 或 subject)。当事件发生时,被观察者(Publisher)就会通知观察者(subscriber)。 观察者的使用场合 观察者的使用场合就是:当一个对象的改变需要同时改变其它对象,并且它不知道具体有多少对象需要改变的时候,就应该考虑使用观察者模式。先看官网的demo这个例子,涉及到了 add 与 fire方法,熟悉设计模式的童鞋呢,一眼就能看出,其实又是基于发布订阅(Publish/Subscribe)的观察者模式的设计。查看全部
-
所以Callbacks它是一个多用途的回调函数列表对象,提供了一种强大的方法来管理回调函数队列。查看全部
举报
0/150
提交
取消