JQuery源码阅读记录】的更多相关文章

新建html文件,在浏览器中打开文件,在控制台输入consoole.log(window);新建html文件,引入JQuery后在浏览器中打开,在控制台同样输入consoole.log(window);会发现window下多了$(jquery)对象. 1.(function(a, b){})(window)自运行: 2.var c = a.document      , d = a.navigator      , e = a.location      , f = function(){}()…
EventBus源码阅读记录 repo地址: greenrobot/EventBus EventBus的构造 双重加锁的单例. static volatile EventBus defaultInstance; public static EventBus getDefault() { if (defaultInstance == null) { synchronized (EventBus.class) { if (defaultInstance == null) { defaultInsta…
分析jQuery源码时记录的一点感悟      1.  链式写法      这是jQuery语法上的最大特色,也许该改改POJO里的set方法,和其他的非get方法什么的,可以把多行代码合并,减去每次敲打对象变量的麻烦      2.  动态参数      偶尔使用Java的动态数组,取出调用时参数个数的限制,可以减少对同一个方法的反复调用      3.  弱化类型      偶尔将参数类型设为Object,多使用泛型,可以减少方法数,简化调用时的类型转换,类型转换在方法内进行      4.…
近来一直利用业余时间在看jquery2.1.1源码,大约看了两千行了.平时看的时候,做了一些笔记,贴出来分享. 1. Array.prototype.slice.call 可以将伪数组转化为真正的数组 其实,这里所谓的“伪数组”就是有length属性,并且有“0”.“1”.“2”等这些属性的对象,如下代码: var obj = { 0: "A", 1: "B", 2: "C", length: 3 }; var slice = [].slice;…
最近两天不忙的时候再回过来研究一下jquery的源码,看到$(document).ready()时,深入的研究了一下dom的加载问题. 我们都知道,window.onload可以解决我们的js执行时机问题.有了它,可以把代码放在页面的任何位置.但是我们也知道,window.onload 要在html.css.js.img全部加载完后才会触发,而这样会影响页面的访问速度.因此,jquery通过封装$(function)做到了DOM加载完毕时就对js内容进行触发. 那jquery做到的原理是什么呢?…
版本号0.1.54 看源码之前,我先去看下官方文档,对于其源码的设计说明,文中所说的原生都是指android 看完官方文档的说明,我有以下几个疑问 第一个:容器是怎么设计的? 第二个:native和flutter的channel的通道是如何设计的? 第三个:Flutter是适配层到底再做些什么? 中控中心FlutterBoost 单独拎出来讲讲,这个类比较简单,就是集合各个模块并让其初始化,同时也是该插件入口处,不管原生和flutter都一样,看源码也是从这里开始看起,但原生和flutter的初…
之前也用了一段时间Vue,对其用法也较为熟练了,但是对各种用法和各种api使用都是只知其然而不知其所以然.最近利用空闲时间尝试的去看看Vue的源码,以便更了解其具体原理实现,跟着学习学习. Proxy 对 data 代理 传的 data 进去的为什么可以用this.xxx访问,而不需要 this.data.xxx 呢? // vue\src\core\instance\state.js const sharedPropertyDefinition = { enumerable: true, co…
这几天有大神推荐读underscore源码,趁着项目测试的空白时间,看了一下. 整个underscore包括了常用的工具函数,下面以1.3.3源码为例分析一下. _.size = function(obj) { return _.isArray(obj) ? obj.length : _.keys(obj).length; }; 整个underscore源码基本上都是以上这种方式写的,所以弄懂上面这段源码,整个underscore的源码就大概清楚了六七成了,剩下的源码用些时间,也就迎刃而解. 因…
1:RACSingle 需要订阅信号 RACSignal *signal = [RACSignal createSignal:^RACDisposable * _Nullable(id<RACSubscriber> _Nonnull subscriber) { [subscriber sendNext:"]; [subscriber sendCompleted]; return nil; }]; [signal subscribeNext:^(id x) { } error:^(NS…
在写驱动的过程中,对于入口函数与出口函数我们会用一句话来修饰他们:module_init与module_exit,那会什么经过修饰后,内核就能狗调用我们编写的入口函数与出口函数呢?下面就来分析内核调用module_init的过程(这里暂时分析编译进内核的模块,不涉及动态加载的模块),以这个过程为例子来了解内核对于不同段的函数的调用过程. 下面从内核的start_kernel函数开始分析,下面是调用过程: start_kernel rest_init kernel_init do_basic_se…