- 
            
            2. 单一职责SRP”查看全部
- 
            
            知识点: 1.S.O.L.I.D五大原则 2.查看全部
- 
            
            知识点: 1. 从2.1版开始jQuery支持通过AMD模块划分 2.查看全部
- 
            
            //简单模拟(闭包) function aDeferred() { var arr = []; return { then: function(fn) { arr.push(fn) return this; }, resolve: function(args) { var returned; arr.forEach(function(fn, i) { var o = returned || args; returned = fn(o) }) } } } 查看全部
- 
            
            element.querySelectorAll 在文档内找全部符合选择器描述的节点包括Element本身 问题出在aaRoot.querySelector尽然还有返回值!因为上下文查找的范围包含了自身了 查看全部
- 
            
            简单来说,就是IE8之前的版本,需使用getAttribute('className')才能获得class属性的值,FF及IE8之后的版本则是W3C的标准getAttribute('class')。 这是因为IE 混淆了 DOM 对象属性(property)及 HTML 标签属性(attribute),造成了对 setAttribute、getAttribute 的不正确实现。 查看全部
- 
            
            $.Deferred的resolveWith( context [, args]).如:var dtd=$.Deferred(); function car(age,name){this.age=age;this.name=name}; dtd.done(car); var obj={}; dtd.resolveWith(obj,[8,"jeep"]);console.log(obj.age+","+obj.name) callbacks.add( callbacks ) 参数 描述 callbacks Function,Array类型 一个函数或者一个函数数组,用来添加到回调列表 查看全部
- 
            
            var cbs = $.Callbacks('once memory'); cbs.add(fn1); console.log('..........') cbs.add(fn2); cbs.fire('bar'); VM9160:5 .......... VM9100:7 fn1 says bar VM9100:10 fn2 says bar {add: ƒ, remove: ƒ, has: ƒ, empty: ƒ, disable: ƒ, …} cbs.fire('foo'); {add: ƒ, remove: ƒ, has: ƒ, empty: ƒ, disable: ƒ, …} 查看全部
- 
            
            var dfd=$.Deferred(); dfd.progress(function(data){ alert(data); }).done(function(data){ alert("done:>>>>>"+data); }).fail(function(data){ alert("fail:>>>>"+data); });function getProcess(){ dfd.notify("我是progress回调函数的参数"); var a=true; //下面判断是为了执行done还是fail if(a){ dfd.resolve("执行done....."); }else{ dfd.reject("执行fail......"); } }<input type="button" value="确定" onclick="getProcess()" /> 查看全部
- 
            
            重点 //内部promise对象,作用: //1:通过promise.promise( deferred );混入到deferred中使用 //2:可以生成一个受限的deferred对象, // 不在拥有resolve(With), reject(With), notify(With)这些能改变deferred对象状态并且执行callbacklist的方法了 // 换句话只能读,不能改变了 查看全部
- 
            
            实际上在Callback源码fire方法有一句 memory = options.memory && data;这样就很巧妙的缓存当前参数5的值,提供给下一个使用,这个就是then,pipe链式数据的一个基础了,此刻的操作,我们把memory保存了这个数据的值。 重点来了,下一个defer.done的操作也是走的add的处理,把done的回调函数加入到list队列中的之后,接着就会触发。 查看全部
- 
            
            jQuery.extend({ Deferred:function(func){ ...省略代码.... return deferred }, when:function(func){ ...省略代码.... return deferred.promise(); } })Deferred方法内部建议了2个对象,一个是deferred外部接口对象,一个是内部promise对象。 promise对象解释是一个受限的对象, 这就是所谓的受限制的deferred对象,因为相比之前, 返回的deferred不再拥有resolve(With), reject(With), notify(With)这些能改变deferred对象状态并且执行callbacklist的方法了,只能是then、done、fali等方法。 查看全部
- 
            
            摘过来一句话:deferred.promise()的作用是,在原来的deferred对象上返回另一个deferred对象,后者只开放与改变执行状态无关的方法(比如done()方法和fail()方法),屏蔽与改变执行状态有关的方法(比如resolve()方法和reject()方法),从而使得执行状态不能被改变。 查看全部
- 
            
            var body1 = $("body") undefined $.data(body1, "bar", '慕课网一'); "慕课网一" $.data(body1, "bar"); "慕课网一" $.data(body1, "bar", '慕课网一1'); "慕课网一1" $.data(body1, "bar"); "慕课网一1" $.data($("body"), "bar", '慕课网一1'); "慕课网一1" $.data($("body"), "bar"); undefined $.data是绑定在对象上 $().data是绑定在dom上 查看全部
- 
            
            静态方法data的实现不像attr操作直接把数据作为属性捆绑到元素节点上 globalCache” 包含了多个 DOM Element 的 “cache”,并在 DOM Element 上添加一个属性,存放 “cache” 对应的 uid。 jQuery中每一个对象都是一个新的jQuery.fn.init()实例,所以即使两个jQuery中包含的DOM元素相同,这两个jQuery对象也并无关系。 
 好了,那么静态方法就是给jQuery对象附加一个uid,而实例方法则就是给jQuery对象中的DOM节点上附加uid。这就是为啥静态方法不覆盖而实例方法覆盖的原因了查看全部
举报
 
             
         
                