jQuery中关于jQuery.fn.init.prototype = jQuery.fn的解读
今天刚好是前一个项目上线的第二天,所以今天很闲,没什么事情做,突发奇想,想看看jQuery的源码。遂将看懂的一点记录与此,后续还会更新。
今天主要说一下jQuery的初始化,jQuery初始化的时候都是没有用new
关键字生成的,所以,下面试想,如果不用new
,jQuery的源码应该是这样的
var jQuery = function(selector, context) {return new jQuery(selector, context);
}
但是,但凡有一点编程基础的都会知道,这段代码会进入死循环,那jQuery源码到底是怎么解决的呢?带着这个疑问,请继续看下去。
jQuery初始化源码如下:
var jQuery = function (selector, context) {// The jQuery object is actually just the init constructor 'enhanced'// Need init if jQuery is called (just allow error to be thrown if not included)return new jQuery.fn.init(selector, context);
}
jQuery.fn = jQuery.prototype = {// The current version of jQuery being usedjquery: version,constructor: jQuery,// The default length of a jQuery object is 0length: 0,init:function(){...}//一些实例方法...
}
最关键的一句
// Give the init function the jQuery prototype for later instantiation
jQuery.fn.init.prototype = jQuery.fn
不知道大家是怎么理解的,反正我是看了几遍没看懂。
最后,网上查阅资料,终于弄懂了,其实特别的简单,就是关于js原型的东西,一画图,就Ok了。自己画的图,比较丑。
不过,网上找了一张好看的图
大概就是这样了,不知道人们看不看的懂,有时候觉得会吹牛逼也是一种能力。
jQuery中关于jQuery.fn.init.prototype = jQuery.fn的解读相关推荐
- jquery中Live方法不可用,Jquery中Live方法失效
jquery中Live方法不可用,Jquery中Live方法失效 >>>>>>>>>>>>>>>>> ...
- jQuery中live函数的替代-【jQuery】
在老版本的jQuery中,当需要对页面上某个由ajax加载的某片段的页面内容响应事件时,可以使用live函数来响应其事件,比如: $('a').live('click', function() { b ...
- jQuery中的页面载入($()、ready(fn)、onload)
用jQuery进行页面载入时有集中方式,我们通过例子来说明一下: 第一种(通过window.onload()): <!DOCTYPE html> <html><head& ...
- jQuery中的几个模块总结
Query插件,以备并希望在前端方面有所长进.请批评指正. 一,类型判断全解 JQuery判断类型扩展方法:$.type() 1 /*type: function( obj ) {2 if ( obj ...
- 1号店案例html源码_手把手教一起写jQuery版mini源码,分析jQuery的优势
适合人群 本文适合0.5~3年的前端开发人员,以及想了解jQuery是什么的小伙伴们. 前言 谈谈个人对jQuery的看法. 如果你是一个五年以上的开发人员,相信你一定认识了解jQuery.这好比你十 ...
- jQuery源码解析对象实例化与jQuery原型及整体构建模型分析(一)
//源码剖析都基于jQuery-2.0.3版本,主要考虑到兼容IE 一.关于jQuery对象实例化的逻辑: 整个jQuery程序被包裹在一个匿名自执行行数内: (function(window,und ...
- Jquery源码中的Javascript基础知识(四)— jQuery.fn.init方法
$() 即调用了jQuery.fn.init方法 jQuery = function( selector, context ) {return new jQuery.fn.init( selector ...
- jQuery分析(3) - jQuery.fn.init
1.前言 上一篇jQuery分析(2)中了解了jQuery库的骨架实现原理,这就好比摇滚音乐,摇滚音乐不是某种音乐他就像一个音乐盒子,里面包含了各种不同的摇滚风格(山地.朋克.乡村.流行.硬摇.金属. ...
- JQuery中的动画效果
show() hide() slideUp slideDown fadeIn fadeOut animate : 自定义动画 JQuery中的动画效果.html <!DOCTYPE html&g ...
- jquery中apply与call的使用
每一个Function对象都有一个apply()方法和一个call()方法 A对象有一个方法,而B对象因为某种不可言说的情况也需要用到一样的方法,那么这时候我们是单独为B扩展个方法呢,还是借用一下A的 ...
最新文章
- LauncherApplication
- 尺度空间(Scale space)理论
- angularjs的ng-repeat回调
- Orleans的集群构建
- 华农java答案_华南农业大学JAVA程序设计A卷答案.doc
- vs 中自带的代码混淆器 Dotfuscator (图)
- 建立域信任关系后,查找位置中看不到另一个域的信息
- HTML5 第六章盒子模型课后作业
- 天津市高分二号卫星影像获取/高分一号卫星影像
- HCIE大师之路(二)——IPSec Over GRE综合实验
- CF 934D 数学 推导多项式展开
- 卡特彼勒CAT SIS 售后服务系统3D零件图系统软件 2019年最新版
- 小红书4大主要人群的消费特征,你占了几个?
- mysql perl教程_使用 Perl 的 MySQL 事务
- 【信息系统项目管理师】第二十五章 量化的项目管理(考点汇总篇)
- 沈航计算机学院杨华,BCD码的加法.doc
- 金融业数字化转型全面提速背后 看华为如何与时俱进
- Word2vec词向量工具带你发现不一样的《天龙八部》
- 记一次oracle HAIP引发的数据库问题
- 正态分布、单 (双) 样本 T 检验
热门文章
- ORacle查询时显示同义词转换不再有效
- oracle box怎么全屏,Oracle VM VirtualBox 虚拟机设置全屏与共享
- css边框图片border-image切图原理
- 计算机办公软件的课件,计算机常用办公软件ppt课件
- 第三阶段应用层——1.9 数码相册—在LCD上显示BMP图片
- 无法加载计算机管理,电脑中无法打开Internet选项中的管理加载项如何解决
- 访问阿里云服务器配置的ftp后,报错227 entering passive mode
- 摄影知识——光圈和快门的组合
- 大数据用户画像方法与实践(干货 转帖)
- 如何注册网站域名?申请域名详细教程