jQuery是面向对象的设计
通过window.$ = window.jQuery = $; 向外提供接口,将$挂在window下,外部就可以使用$和jQuery

$("#div1").css()   //$("#div1")是jQuery的一个实例对象,css()是实例的方法【实例的方法只能jQuery对象使用】
$("#div1").html()

$.trim()
$.proxy()      //工具方法,相当于静态方法,【jQuery对象和原生js对象都可以使用】

(function(window , undefined){
【1】jQuery源码采取闭包形式(匿名函数自执行),好处是里面的代码都是局部的,不会与外部冲突

【2】为什么要传入window?
1、根据函数作用域链,若没有传入window,就会一层一层向上查找window,而window对象是 最顶层的对象,查找速度就会非常慢,传入后,只需要查找参数即可
2、便于压缩,可以用w参数代表window对象,所有用到window的都是w,节约空间

【3】为什么传入undefined?
在某些浏览器版本中undefined可以被修改
var undefined = 10;
alert(undefined); //IE10弹出undefined,IE7 8弹出10
为防止undefined被修改,这里传入undefined,jQuery首先找到的是参数中传入的undefined,不会找到外层或被修改的undefined

【4】   <script>
        "use strict" //严格模式不允许 a = 10 ; var num = 010 不规范的写法  一般不推荐使用严格模式
     </script>

【5】jQuery(document)可以直接使用,但是jQuery将每一个对象都赋值给了一个变量

    var rootJQuery = jQuery(document)这样做的原因:  jQuery(document)不可被压缩成一个字符,而rootJQuery可以

【6】 判断是不是undefined: window.a == undefined;    typeof window.a == 'undefined' 用这个兼容IE6 7 8 9
})(window);

基本的面向对象的编程
function Aaa(){     //会自动生成Aaa.prototype.constructor = Aaa
}
Aaa.prototype.init = function(){};
Aaa.prototype.css = function(){};
var a1 = new Aaa();
a1.init();
a1.css();

两种为原型添加属性的方式比较:

一:
Aaa.prototype.name = 'zz';
Aaa.prototype.age = '18'
alert( a1.constructor ); //function Aaa(){}

二:

//prototype被覆盖,其中的constructor : Aaa不再了,所以{}形式需要在里面加上constructor : Aaa,否则constructor是空的Object

Aaa.prototype = {name : 'zz',age : '18'};   
alert( a1.constructor ); //Object(){}

jQuery的设计思想:可以实现$().css()方式编程的原理
function jQuery(){
return new jQuery.prototype.init();
}
jQuery.prototype.init = function(){};
jQuery.prototype.css = function(){};
jQuery.prototype.init.prototype = jQuery.prototype;   //对象的引用关系,对象的原型是一个对象

Jquery源码学习(第一天)的更多相关文章

  1. jquery源码学习第一天

    第一天认识了jquery的大体结构,总的大范围是 (function() { // 这里是封装的代码,包括了各种方法.工具 window.JQuery = JQuery window.$ = $; } ...

  2. jquery源码学习笔记三:jQuery工厂剖析

    jquery源码学习笔记二:jQuery工厂 jquery源码学习笔记一:总体结构 上两篇说过,query的核心是一个jQuery工厂.其代码如下 function( window, noGlobal ...

  3. jquery源码学习(一)——jquery结构概述以及如何合适的暴露全局变量

    jQuery 源码学习是对js的能力提升很有帮助的一个方法,废话不说,我们来开始学习啦 我们学习的源码是jquery-2.0.3已经不支持IE6,7,8了,因为可以少学很多hack和兼容的方法. jq ...

  4. jquery 源码学习(一)

    从上边的注释看,jQuery的源码结构相当清晰.条理,不像代码那般晦涩和让人纠结   1. 总体架构 1.1 自调用匿名函数 self-invoking anonymous function 打开jQ ...

  5. jQuery源码学习笔记一

    学习jQuery源码,我主要是通过妙味视频上学习的.这里将所有的源码分析,还有一些自己弄懂过程中的方法及示例整理出来,供大家参考. 我用的jquery v2.0.3版本. var rootjQuery ...

  6. jquery 源码学习(四)构造jQuery对象-工具函数

    jQuery源码分析-03构造jQuery对象-工具函数,需要的朋友可以参考下.   作者:nuysoft/高云 QQ:47214707 EMail:nuysoft@gmail.com 声明:本文为原 ...

  7. jQuery源码学习感想

    还记得去年(2015)九月份的时候,作为一个大四的学生去参加美团霸面,结果被美团技术总监教育了一番,那次问了我很多jQuery源码的知识点,以前虽然喜欢研究框架,但水平还不足够来研究jQuery源码, ...

  8. 读艾伦的jQuery的无new构建,疑惑分析——jquery源码学习一

    背景: 有心学习jquery源码,苦于自己水平有限,若自己研究,耗时耗力,且读懂之日无期. 所以,网上寻找高手的源码分析.再经过自己思考,整理,验证.以求有所收获. 此篇为读高手艾伦<jQuer ...

  9. jquery 源码学习(*)

    最近在做日志统计程序,发现对方的程序是在Jquery基础上进行开发的,而公司的网站的框架是prototype.而且我也早就想了解一下Jquery源码,故决定研究Jquery源码,模拟它的方法   Jq ...

随机推荐

  1. $\mathscr{F}$类

    $\mathscr{F}$类:在单位元盘$B(0,1)$中满足$$f(0)=0,f'(0)=1$$ 的双全纯函数的全体.

  2. H5(三)

    Canvas(画布)   基本内容     简单来说,HTML5提供的新元素<canvas>     Canvas在HTML页面提供画布的功能       在画布中绘制各种图形     C ...

  3. Delphi的Trim函数

    三个Trim函数简介 函数原型 function Trim(const S: string): string; 将字符串前后的空白及控制字元清掉. 注意Trim函数只能清掉字符串前后的空格及控制字元, ...

  4. Delphi容器类之---TOrderedList、TStack、TQueue、TObjectStack、TObjectQueue

    TOrderedList.TStack.TQueue Contnrs单元还定义了其他三个类:TOrderedList.TStack.TQueue TOrderedList TOrderedList = ...

  5. 【Java并发系列02】Object的wait()、notify()、notifyAll()方法使用

    一.前言 对于并发编程而言,除了Thread以外,对Object对象的wati和notify对象也应该深入了解其用法,虽然知识点不多. 二.线程安全基本知识 首先应该记住以下基本点,先背下来也无妨: ...

  6. Project Euler欧拉计划

    1 If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. Th ...

  7. Puppet自动化部署-安装及配置(3)

    本文介绍Puppet Master及Agent相关的安装及配置. 一. 官网下载Puppet安装YUM源 [root@puppet-master ~]# rpm -ivh https://yum.pu ...

  8. Ubuntu14.04 64位机上安装cuda8.0 cudnn5.0操作步骤 - 网络资源是无限的

    查看Ubuntu14.04 64位上显卡信息,执行: lspci | grep -i vga lspci -v -s 01:00.0 nvidia-smi 第一条此命令可以显示一些显卡的相关信息:如果 ...

  9. http错误代码含义中英文对照

    Http错误代码含义中文 概要当用户试图通过 HTTP 或文件传输协议 (FTP) 访问一台正在运行 Internet 信息服务 (IIS) 的服务器上的内容时,IIS 返回一个表示该请求的状态的数字 ...

  10. [资料分享]尚硅谷JavaWeb

    下载链接: 链接:https://pan.baidu.com/s/1pKMclsv 密码:8fbh