-
靜態方法: 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
提交
取消