jQuery 技术揭秘
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:body
3:字符串 html字符串 #id .class
4:选择器表达式 #id .class
5:function 事件回调
6:对象
*/
} // jQuery.extend // 对象 属性
// jQuery.prototype // 原型 }; // 3.桥接设计模式
// jQuery.prototype.init.prototype = jQuery.prototype;
jQuery.fn.init.prototype = jQuery.fn;
// console.log(jQuery.prototype.init); // 5
jQuery.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++){ // 1
if((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静态方法
异步列队
数据缓存
属性操作
事件处理
选择器 // 正则 sizzle
DOM遍历
DOM操作
css操作
动画
坐标
*/
.
jQuery 技术揭秘的更多相关文章
- jquery技术揭秘静态工具函数源码重构
1.调用页面 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...
- 【直播】APP全量混淆和瘦身技术揭秘
[直播]APP全量混淆和瘦身技术揭秘 近些年来移动APP数量呈现爆炸式的增长,黑产也从原来的PC端转移到了移动端,通过逆向手段造成数据泄漏.源码被盗.APP被山寨.破解后注入病毒或广告现象让用户苦不堪 ...
- [转载]JavaEE学习篇之——JQuery技术详解
原文链接:http://blog.csdn.net/jiangwei0910410003/article/details/32102187 1.简介2.工具3.jQuery对象 1.DOM对象转化成j ...
- (转) 技术揭秘:海康威视PASCAL VOC2012目标检测权威评测夺冠之道
技术揭秘:海康威视PASCAL VOC2012目标检测权威评测夺冠之道 原创 2016-09-21 钟巧勇 深度学习大讲堂 点击上方“深度学习大讲堂”可订阅哦!深度学习大讲堂是高质量原创内容平台,邀请 ...
- 技术揭秘12306改造(一):尖峰日PV值297亿下可每秒出票1032张
[编者按]12306网站曾被认为是"全球最忙碌的网站",在应对高并发访问处理方面,曾备受网民诟病. 2015年铁路客票春运购票高峰期已过,并且12306网站今年没"瘫痪& ...
- 15个实用的jQuery技术
JQuery是目前最流行的JavaScript框架之一,可以显著的提高用户与网络应用的交互. 今天为大家介绍50有用的jQuery技术: 1.移动Box 2.滑动框和标题 3.数据的可视化:使用HTM ...
- 阅读《Oracle内核技术揭秘》的读书笔记
阅读<Oracle内核技术揭秘>,对oracle的内存结构.锁.共享池.undo.redo等整理成了如下的思维导图:
- C++反汇编与逆向分析技术揭秘
C++反汇编-继承和多重继承 学无止尽,积土成山,积水成渊-<C++反汇编与逆向分析技术揭秘> 读书笔记 一.单类继承 在父类中声明为私有的成员,子类对象无法直接访问,但是在子类对象的 ...
- “声讨”高云的《jQuery技术内幕》
1. 前言: 其实本文有点太标题党了,哈哈,见谅.说“声讨”,就是说说我作为一个<jQuery技术内幕>一个忠实读者,读本书的一些想法和建议. 2014年2月20日,我收到了<jQu ...
随机推荐
- [hdu1695] GCD ——欧拉函数+容斥原理
题目 给定两个区间[1, b], [1, d],统计数对的个数(x, y)满足: \(x \in [1, b]\), \(y \in [1, d]\) ; \(gcd(x, y) = k\) HDU1 ...
- C++虚函数表解析(基础篇)
原文:http://blog.csdn.net/haoel/article/details/1948051 一.简介 C++中的虚函数的作用主要是实现了多态的机制.虚函数(Virtual Funct ...
- 1.2.3 创建Cocos2D-iPhone的帮助文档
http://book.51cto.com/art/201303/383957.htm <Cocos2D权威指南>第1章开始前的准备工作,本章我们将介绍什么是Cocos2D以及有关Coco ...
- php+ajax+jquery分页并显示数据
参考https://www.helloweba.com/view-blog-195.html html页面 <div class="weui-cells" id=" ...
- Python学习杂记_15_正则表达式
正则表达式 正则表达式就是用来查找字符串的,它能够查找规则比较复杂的字符串.使用正则表达式首先要导入re模块import re s = "besttest is good!besttest ...
- 正则表达式之Regex.Matches()用法
//提取字符串中至少连续7位的数字 string txt = "www17736123780eeeee 7377091 ddddsssss7777777"; //找到的成功匹配的集 ...
- 浅谈正则表达式-PHP为例
第一次比较系统的学习正则表达式,本篇文章以PHP语言为例来学习. 基本概念 正则表达式=普通字符(如a-z)+分隔符(正斜线(/).hash符号(#) 以及取反符号(~))+特殊字符(称为元字符) 两 ...
- jQuery实现日期字符串格式化
1. js仿后台的字符串的StringFormat方法 function StringFormat() { if (arguments.length == 0) return null; var st ...
- 51nod 1001 数组中和等于K的数对【二分查找/排序】
1001 数组中和等于K的数对 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 收藏 关注 给出一个整数K和一个无序数组A,A的元素为N个互不相同的整数,找出数组 ...
- ELK帮助文档
elasticsearch: API中文指南:https://es.xiaoleilu.com/010_Intro/15_API.html 官方文档:https://www.elastic.co/cn ...