1.平时jquery调用页:

index.html :

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title>
</head>
<body><script src="js/jquery.min.js"></script><script>var obj = {name:"Tom"};var obj1 = {age:30,height:175,weight:68};console.log(obj);$.extend(obj,obj1);console.log(obj);// extend 给对象扩展属性 参数2以上// extend 给jquery对象扩展属性方法(静态) 参数1// extend 给jquery实例对象(公共 原型)扩展属性方法 参数1$.extend({getName:function(){alert("Tom is Tom");}})$.fn.extend({ // 在原型上getName:function(){alert("Tom is Tom");}});console.log($.getName());console.log($().getName());</script>
</body>
</html>

2.测试页

test.html :

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>jquery源码</title>
</head>
<body><script src="js/jquery.1.1.0.js"></script><script>// 将jquery作为对象对待// jQuery.fn  // 指向jquery原型// jQuery.extend // 给对象扩展属性// jQuery.extend({// });// jQuery.fn.extend({// });var obj = {name:"tom"};var obj1 = {age:30,height:175,weight:68};$.extend(obj,obj1)$.extend({getName:function(){//}});var result = $.extend({},obj,obj1);console.log(result);</script>
</body>
</html>

3.自己封装的jquery代码

jquery-1.1.0.js :

/*** 创建自运行函数* 私有的命名空间* 局部作用域*/
(function(window){ // 局部作用域// 2.创建jquery的构造函数var jQuery = function(selector){ //jQuery 类return new jQuery.prototype.init(selector); // 桥接设计模式}// 4.将jQuery作为对象,fn是其属性jQuery.fn = jQuery.prototype = { // 原型对象init:function(selector){ // 原型对象初始化方法,相当于构造函数/*1:DOM元素2:body3:字符串 html字符串 #id .class4:选择器表达式  #id .class5:function 事件回调6:对象*/}// jQuery.extend  // 对象 属性// jQuery.prototype // 原型 };// 3.桥接设计模式// jQuery.prototype.init.prototype = jQuery.prototype;jQuery.fn.init.prototype = jQuery.fn;// console.log(jQuery.prototype.init);// 5jQuery.extend = jQuery.fn.extend = function(){var length = arguments.length; // 参数个数var target = arguments[0] || {};var i = 1;var options;var name;var copy;var src;// 类型if(typeof target !=="object" && typeof target !=="function"){target = {}; // 默认是一个对象}console.log(target);// 传一个参数if(length == i){target = this; // 改变this指向console.log(target);--i;}// 传2个以上for(;i<length;i++){ // 1if((options = arguments[i]) != null){ // 下标为1及以上console.log(options);for(name in options){ //// 循环可枚举属性console.log(options[name]);copy = options[name];src = target[name]; // 第一参数 扩展属性console.log(src);if(copy != undefined){target[name] = copy;}}}return target;}// 扩展工具函数jQuery.extend = ({isFunction:function(){ // 静态方法//},isWindow:function(){//}})}window.$ = window.jQuery = jQuery;
})(window) // 1.传window对象(全局作用域里的对象)console.log($().css); // 数据类型是object  $() 创建实例对象    $(this)  mvc mvvm Grunt// 类 class 构造函数 函数 对象// function xxx() {}   Function
// var obj = {};
// obj.name="max"; //私有 静态/*工具函数 jQuery静态方法异步列队数据缓存属性操作事件处理选择器  // 正则 sizzleDOM遍历DOM操作css操作动画坐标
*/

.

转载于:https://www.cnblogs.com/crazycode2/p/7096922.html

jQuery 技术揭秘相关推荐

  1. 零代价修复海量服务器的内核缺陷——UCloud内核热补丁技术揭秘

    下述为UCloud资深工程师邱模炯在InfoQ架构师峰会上的演讲--<UCloud云平台的内核实践>中非常受关注的内核热补丁技术的一部分.给大家揭开了UCloud云平台内核技术的神秘面纱. ...

  2. 第五章 业务架构,5.3 千亿访问量下的开放平台技术揭秘(作者:风胜)

    5.3 千亿访问量下的开放平台技术揭秘 前言 淘宝开放平台(open.taobao.com)是阿里系统与外部系统通讯的最重要平台,每天承载百亿级的API调用,百亿级的消息推送,十亿级的数据同步,经历了 ...

  3. (转) 技术揭秘:海康威视PASCAL VOC2012目标检测权威评测夺冠之道

    技术揭秘:海康威视PASCAL VOC2012目标检测权威评测夺冠之道 原创 2016-09-21 钟巧勇 深度学习大讲堂 点击上方"深度学习大讲堂"可订阅哦!深度学习大讲堂是高质 ...

  4. 如何让机器获得幽默感——Goolge图学习技术揭秘

    原文: Graph-powered Machine Learning at Google 作者: Sujith Ravi 译者: KK4SBB 责编:何永灿,关注人工智能,投稿请联系heyc@csdn ...

  5. 阿里云CDN技术 揭秘

    阿里云CDN技术 揭秘 http://yunpan.cn/cA2N5fnd5TEx3  提取码 a232 转载于:https://blog.51cto.com/zj1991/1581950

  6. jQuery技术内幕:深入解析jQuery架构设计与实现原理

    为什么80%的码农都做不了架构师?>>>    jQuery技术内幕:深入解析jQuery架构设计与实现原理 本书由阿里巴巴资深前端开发工程师撰写,从源代码角度全面而系统地解读了jQ ...

  7. 反欺诈技术揭秘-设备指纹VS关系网络模型 此博文包含图片 (2017-05-12 10:23:52)转载▼ 标签: 设备指纹 关系网络 反欺诈 神经网络模型 分类: 风控 文章来源:网络(经整合梳理

    反欺诈技术揭秘-设备指纹VS关系网络模型 (2017-05-12 10:23:52) 转载▼ 标签: 设备指纹 关系网络 反欺诈 神经网络模型 分类: 风控 文章来源:网络(经整合梳理,仅供交流学习使 ...

  8. 阅读《Oracle内核技术揭秘》的读书笔记

    阅读<Oracle内核技术揭秘>,对oracle的内存结构.锁.共享池.undo.redo等整理成了如下的思维导图: 转载于:https://www.cnblogs.com/hikeepg ...

  9. 实时音频抗弱网技术揭秘

    本文由百度智能云-视频云技术架构师--柯于刚 在百度开发者沙龙线上分享的演讲内容整理而成.内容从抗弱网技术意义出发,梳理抗弱网的概念与方法,结合百度RTC抗弱网过程中遇到的问题,重点分享抗弱网技术优化 ...

最新文章

  1. 阅《领域驱动设计与设计模式实战》
  2. python break -else 语句
  3. python爬虫运行不出结果_请问这个为什么就是爬不到,运行之后电脑卡的不行,求大佬指导...
  4. Spring Boot+JPA 查询数据方式与代码演示
  5. iPhone开发内存管理
  6. 朴素贝叶斯文本分类代码(详解)
  7. voices——最后的决赛
  8. 不同浏览器对URL最大长度的限制(转)
  9. 题9.6:13个人围成一圈, 从第1个人开始顺序报号1, 2, 3。凡报到3者退出圈子。找出最后 留在圈子中的人原来的序号。要求用链表实现。
  10. 怎么管理好精力,让自己每天精力充沛
  11. dcs常用的冗余方式_冗余技术在DCS平台应用分析
  12. mysql fetch lengths_phpmysqli_fetch_lengths函数怎么用
  13. 一段真实在个人经历, 给那些迷失方向的朋友[转帖]
  14. android 特效字体下载,Android 一定有你想要的 文字特效 文字动画 艺术字
  15. 联想Thinkpad T480 电脑 Hackintosh 黑苹果efi引导文件
  16. 织梦建站:织梦CMS整站源码通用安装教程(图文教程)
  17. 年终盘点一 | 云原生的 2022 年:降本提效、全面 Serverless 化
  18. 【无标题】文档转成二维码添加到公众号文章(Word、Excel、PPT、PDF等)
  19. 4G模块AT指令发送中英文短信详细流程
  20. 2022-02-15

热门文章

  1. 微软警告称Flame病毒利用Windows漏洞
  2. Dynamics Ax 2012 – AIF Import CSV File
  3. 浅析网页界面设计——首页设计
  4. html文件修改后缀为aspx之后在ie6中格式显示不正确问题的解决办法
  5. Linux命令--pwd
  6. 解决IDEA中进行maven install报:系统资源不足的问题
  7. 亚马逊贝索斯伸出橄榄枝后,巴菲特也力挺特朗普
  8. C_functions
  9. 使用ASV2011研究Molehill API
  10. CoverageMeter中关于“line coverage”不准确的解释