为了账号安全,请及时绑定邮箱和手机立即绑定
解释一下这句话(流程解析中的1): ‘因为constructor是指向构造器的,所以这里就等同于调用jQuery()方法了’
我们知道:
1 jQuery = function(){ return new jQuery.fn.init(); }
2 jQuery.fn = jQuery.prototype = { init:function(){//.....} , constructor:jQuery }
所以 this.constructor() == jQuery()
jQuery对象是一个类数组对象,注意:类数组对象并不是数组!
至于栈结构:则是先进后出,FILO( first in last out ),类似于一个没有盖的木桶,第一次放进去的水(假设不考虑水分子的运动)在最下面,第二次放进去的水在第一次放进去的水的上面....取水时,先取最后一次放进去的水,第一次放进去的水反而最后取出来。
1 插件分两种,一种是静态函数: 不用实例化就可以直接调用,比如:Math.floor();另一种是实例方法:只有实例才能使用,比如: var a = 'hah' ; a.length
2 jQuery.extend() 和 jQuery.fn.extend() 指向的都是同一个函数,之所以能实现不同的功能,就死因为函数内部通过对 this 进行判断进而实现了重载。
3 详细的关于extend()函数的讲解,在我的博客:http://www.cnblogs.com/MnCu8261/p/6039986.html
所以我们如果需要链式的处理,只需要在方法内部方法当前的这个实例对象this就可以了。 课程中的这句话有歧义: 1 像css() hide() addClass() show()等这些方法,直接返回this是没有问题的。
2 而next() childern() parent() 等这些方法,则需要对this进行处理,然后将处理之后的结果进行返回。
不过,总之,链式处理的前提必须是方法中必须返回一个或者一些实例对象
我觉得叫苦是没用的,本课程的讲解是有前提的----必需熟练掌握javascript基础知识!不掌握这些知识肯定看不懂,其次,我们还要对面向对象,插件编写等有一定的了解,否则我们只能读懂代码,但不清楚:为啥要这样做?如果用那样的方式不是会更简单吗?这么绕来绕去有啥用? 再就是,即使我们能做到以上两点,我们就能游刃有余的学习这门课程了么?我只能说:骚年,图样图私募跑! 我们需要反复阅读本课程,很多东西需要我们反复思考才能理解,才能查漏补缺。
js中的面向对象这一块不熟悉的,可以看我的博客:http://www.cnblogs.com/MnCu8261/p/5965397.html
我做了将近两年的前端,看着还是感觉费劲
在javascript的世界中一共有四种上下文调用方式:方法调用模式、函数调用模式、构造器调用模式、apply调用模式。我要分别解释一下:
方法调用模式: 类似于foo.bar(),函数作为一个对象的方法出现,this指向foo。
函数调用模式:类似于bar(),函数单独出现,this指向window
构造器调用模式:类似于 var foo = new bar(),this指向new bar()返回的对象。
apply调用:类似于bar.apply(object),this指向object
不懂constructor: ajQuery是什么作用的同学们:
每一个构造函数都有一个prototype对象,函数的prototype对象存在一个属性constructor,这个属性是一个指针,指向构造函数。
因为我们使用字面量的形式重新定义了ajQuery的prototype对象,所以prototype里面的constructor属性我们必须自己重新定义
这里特别注意是只要使用了$.confilict()就会让出$的控制权,而不管是否发生了冲突。另外老师讲解的确太少了,很难看懂,一些逻辑没有讲清楚。希望老师以后能够更加负责。
还可以用 void 0 代表 undefined,很给力
jQuery.fn.init.prototype = jQuery.fn; 实际相当于继承jQuery,init方法返回的实例,this指向的只是init对象,而init对象上是不存在jQuery原型中的方法的
好难,下次再来
看到下面说头都很晕,我很高兴啊,哈哈哈,继续坚持看下去!

已采纳回答 / rogerwei2
 jQuery.find是Sizzle对象,和我们使用$('#id').find('.classs')的find是不一样。那么,ret是用来存放真实的查询结果的。 jQuery.find的for循环,主要是$('#id')对象可能不止一个.目的是要把classs都要找出来~
课程须知
源码的阅读不是一蹴而就的,需要大家有一定的功底,比如jQuery的基础运用以及API的熟悉度,除此之外要有牢固的javascript、DOM、CSS的基础功底,甚至还需要理解常见的设计模式、数据结构等等。当然大家也不要被这些给吓住了,理解,总是需要一种慢慢的学习过程。
老师告诉你能学到什么?
通过本课程的学习,您可以由浅入深地剖析jQuery库的设计与实现。 其中我们围绕的重心: 1、设计理念 2、结构组织 3、接口设计 4、模式运用 5、场景套用

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消