为了账号安全,请及时绑定邮箱和手机立即绑定
  • 静态方法: var BaseClass = function() {};// var BaseClass=new Function(); BaseClass.f1 = function(){//定义静态方法,或者static定义的 alert(' This is a static method '); } BaseClass.f1();//This is a static method var instance1 = new BaseClass(); instance1.f1();//instance1.f1 is not a function 实例方法: 可以在实例上、原型引用上和构造器的“this”上定义实例方法 在实例上定义demo如下: var BaseClass = function() {}; var instance1 = new BaseClass(); instance1.method1 = function(){ alert(' This is a instance method too '); } 直接定义在实例上的变量的优先级要高于定义在“this”上的,而定义在“this”上的又高于 prototype定义的变量。 内部方法: var BaseClass = function() { var method1 = function() {//内部方法 alert("Internal method"); }; var method2 = function() {//内部方法 alert("call Internal method"); method1(); }; this.method3 = function(){ method2(); } }; var instance1 = new BaseClass(); instance1.method1();// 会报错,因为method1是BaseClass中定义的内部变量,作用域只有在内部可见(闭包) instance1.method3();//会先后调用method2和method1
    查看全部
  • javascript可以通过操作符new来充当类的构造器。prototype是构造函数的一个属性, 该属性指向一个对象。而这个对象将作为该构造函数所创建的所有实例的基引用(base reference)。
    查看全部
    0 采集 收起 来源:对象的构建

    2017-12-06

  • 类二new产生的a、b、c三个实例对象共享了原型的sayName方法,这样的好处节省了内存空间,类一则是要为每一个实例复制sayName方法,每个方法属性都占用一定的内存的空间。 除此之外类一的所有方法都是拷贝到当前实例对象上。类二则是要通过scope连接到原型链上查找,这样就无形之中要多一层作用域链的查找了。 所以jquery 是 new 的原型
    查看全部
    0 采集 收起 来源:对象的构建

    2017-12-06

  • (1) 解析HTML结构。 (2) 加载外部脚本和样式表文件。(加载不一定执行) (3) 解析并执行脚本代码。(内部,比如body中的,demo中前三个输出就是) (4) 构造HTML DOM模型。//ready (5) 加载图片等外部文件。 (6) 页面加载完毕。//load
    查看全部
  • <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <script src="http://img1.sycdn.imooc.com//down/540812440001e40e00000000.js" type="text/javascript"></script> <script src="http://img1.sycdn.imooc.com//down/541f6ff70001a0a500000000.js" type="text/javascript"></script> <title>dom加载</title> </head> <body> <script type="text/javascript"> show('观察脚本加载的顺序') document.addEventListener("DOMContentLoaded", function() { show('DOMContentLoaded回调') }, false); window.addEventListener("load", function() { show('load事件回调') }, false); show('脚本解析一') //测试加载 $(function(){ show('脚本解析二') }) show('脚本解析三') </script> <body> </body> </html> 结果: 观察脚本加载的顺序 脚本解析一 脚本解析三 脚本解析二 DOMContentLoaded回调 load事件回调
    查看全部
  • 所以jQuery在结构上的优化不仅仅只是我们看到的,除了实现【类数组结构】、【方法的原型共享】,而且还实现【方法的静态与实例的共存】,这是我们之后将会重点分析的。
    查看全部
  • //定义了这个函数名为countChecked 的函数 var countChecked = function() { //用n获取被选中的checkbox个数 var n = $( "input:checked" ).length; //下面给这个div内容赋值。其中用n === 1 ? " is" : " are" 这个逻辑运算,细节地处理了 //is还是are的选择 $( "#t" ).text( n + (n === 1 ? " is" : " are") + " checked!" ); }; //turn on/turn off。 //on意思应该就是打开了被选中,选择时调用叫countChecked 的函数 $( "input[type=checkbox]" ).on( "click", countChecked );
    查看全部
    0 采集 收起 来源:jQuery设计理念

    2018-03-22

  • jQuery.find(selector, self[i], ret) jQuery.unique(ret) jQuery.merge( this.constructor(), elems )
    查看全部
    0 采集 收起 来源:end与addBack

    2017-11-16

  • DOM文档加载的步骤: 要想理解为什么ready先执行,load后执行就要先了解下DOM文档加载的步骤: (1) 解析HTML结构。 (2) 加载外部脚本和样式表文件。 (3) 解析并执行脚本代码。 (4) 构造HTML DOM模型。//ready (5) 加载图片等外部文件。 (6) 页面加载完毕。//load
    查看全部
  • 不理解的可以看看这篇博客加深理解 http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_deferred_object.html
    查看全部
    0 采集 收起 来源:Deferred是什么?

    2017-11-02

  • 搞事请啊
    查看全部
    0 采集 收起 来源:jQuery设计理念

    2017-10-24

  • $('ele').click(function(){ var foo=$('ul.first').find('.foo'); foo.css('display','block'); foo.find('.bar').css('display','block'); })
    查看全部
  • jquery方法链式 $('input[type="button"]') .eq(0).click(function(){ alert('1'); }).end().eq(1) .click(function(){ $('input[type="button"]:eq(0)').trigger('click'); }).end().eq(2) .trigger(function(){ $('ele').hide('slow'); },function(){ $('ele').slow('slow'); })
    查看全部
  • 原型方法 方法共享 aa.fn=aa.prototype={ name:'alice', init:function(selector){ this.selector=selector; return this; }, constructor: aa } aa.fn.init.prototype=aa.fn
    查看全部
  • jquejquery面对对象 实例化 function jquery(){ this.name='jquery'; this.sayname=function(){ return this.name } var a=new jquery(); var b=new jquery(); var c=new jquery(); } 原型 方法共享 属性可私有 function jquery(){ this.name='jquery'; } jquery.prototype={ sayname:function(){ return this.name; } } var a=new jquery(); var b=new jquery(); var c=new jquery(); 原型链结构 $=function(selector,context){ return new jquery.fn.init(selector,context); } jquery.fn=jquery.prototype={ init:function(){ return this }, jquery:version, constructor:jquery, } var a=$();
    查看全部
    0 采集 收起 来源:对象的构建

    2017-10-19

举报

0/150
提交
取消
课程须知
源码的阅读不是一蹴而就的,需要大家有一定的功底,比如jQuery的基础运用以及API的熟悉度,除此之外要有牢固的javascript、DOM、CSS的基础功底,甚至还需要理解常见的设计模式、数据结构等等。当然大家也不要被这些给吓住了,理解,总是需要一种慢慢的学习过程。
老师告诉你能学到什么?
通过本课程的学习,您可以由浅入深地剖析jQuery库的设计与实现。 其中我们围绕的重心: 1、设计理念 2、结构组织 3、接口设计 4、模式运用 5、场景套用

微信扫码,参与3人拼团

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

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