-
静态方法: 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)。查看全部
-
类二new产生的a、b、c三个实例对象共享了原型的sayName方法,这样的好处节省了内存空间,类一则是要为每一个实例复制sayName方法,每个方法属性都占用一定的内存的空间。 除此之外类一的所有方法都是拷贝到当前实例对象上。类二则是要通过scope连接到原型链上查找,这样就无形之中要多一层作用域链的查找了。 所以jquery 是 new 的原型查看全部
-
(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 );查看全部
-
jQuery.find(selector, self[i], ret) jQuery.unique(ret) jQuery.merge( this.constructor(), elems )查看全部
-
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查看全部
-
搞事请啊查看全部
-
$('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/150
提交
取消