ǰÑÔ ÎªÊ²Ã´ÒªÑ§Ï°Éè¼ÆÄ£Ê½£¿
½âñîºÏ¡¢½â¾ö¸´Óá¢Ìá¸ß¹Û²ì¸ß¶È
´´½¨ÐÍģʽ 1¡¢µ¥Àýģʽ
³¡¾°£ºµã»÷Ò³ÃæÒ»¸ö°´Å¥£¬µ¯³öÕÚÕֲ㡣
Óöµ½Õâ¸öÎÊÌ⣬Ê×ÏÈÎÒÃÇÏëµ½ÓÃÒ»¸ö·½·¨´´½¨Ò»¸ödiv£¬È»ºóappendµ½bodyÉÏ£¬ÊµÏÖµã»÷ʼþ£¬´úÂëÈçÏ£º
function createTip(){ 2 var div = document.createElement("div"); 3 return document.body.appendChild(div); 4 } 5 $('#user').click( function(){ 6 var tip = createTip(); 7 $(tip).show(); 8 }); |
ËäÈ»¹¦ÄÜʵÏÖÁË£¬µ«ÊÇÕâÖÖ·½·¨ÓÐÒ»¸ö´óÎÊÌ⣺·´¸´´´½¨Dom£¡
ËùÒÔÎÒÃÇÐèÒª¶ÔËü½øÐиÄÔ죬¸ÄÔìÍê³ÉÖ®ºó£¬´úÂëÈçÏ£º
1 var tipEl = document.createElement("div"); 2 tipEl.style.display = "none"; 3 document.body.appendChild(tipEl); 4 function showTip(){ 5 tipEl.style.display = ""; 6 } 7 $('#user').click( function(){ 8 showTip(); 9 });
|
ËäÈ»±ÜÃâÁËÉÏÃæ·½·¨Öظ´´´½¨domµÄȱµã£¬µ«ÊÇÕâôʵÏÖ»¹ÊÇÓкܴóµÄ±×¶Ë£º1¡¢±©Â¶È«¾Ö±äÁ¿tipEl£¬ÓÈÆäÊÇÔÚ×ö×é¼þ»¯¿ª·¢µÄʱºòÒª¾¡¿ÉÄܲ»Òª±©Â¶È«¾Ö±äÁ¿£¬·ñÔòÈÝÒ×ÒýÆðÈ«¾Ö±äÁ¿ÎÛȾºÍ³åÍ»£»2¡¢´´½¨Íê³ÉÖ®ºóÓû§¿ÉÄܲ»È¥µã»÷£¬µ¼ÖÂdomÀË·Ñ¡£
ÔÙÒ»´ÎÉý¼¶£¬´úÂëÈçÏ£º
var createTip = function(){ 2 var tip; 3 return function(){ 4 return tip || 5 (tip=document.body.appendChild(document.createElement("div"))) 6 } 7 }(); 8 $('#user').click( function(){ 9 var tip = createTip(); 10 $(tip).show(); 11 }); |
ºÃ£¬Õâ¾ÍÊÇ×îÖյĵ¥ÀýģʽʵÏÖÁË¡£
ΪʲôcreateTipÒªreturnÒ»¸öfunction£¬¶ø²»ÊÇÖ±½Ó°Ñtip||(tip=document.body.appendChild(document.createElement("div")))
·µ»Ø³öÀ´ÄØ£¿
ÒòΪÕâÑù¿ÉÒÔ×öµ½¶èÐÔ¼ÓÔØ£¬Ö»ÔÚÐèÒªµÄʱºò´´½¨(ÕâÒ²ÊÇÔÚclick·½·¨ÖÐvar tip = createTip();Òª¼ÓÉÏ()µÄÔÒò)£¬·ñÔòä¯ÀÀÆ÷Óöµ½createTipµÄ¶¨ÒåµÄʱºò¾ÍÖ±½ÓÖ´Ðзµ»Øtip£¬Õâ²»ÊÇÎÒÃÇËùÏ£ÍûµÄ¡£
×ܽ᣺
a¡¢Î¨Ò»ÊµÀý£º½ÚԼϵͳ×ÊÔ´£¬Ìá¸ßÐÔÄÜ£»
b¡¢ÃüÃû¿Õ¼ä£º¼õÉÙÈ«¾Ö±äÁ¿µÄÊýÁ¿£»
c¡¢ÊµÀý¿ØÖÆ£ºË½ÓÐʵÀý£¬Ìṩ·ÃÎʽӿÚ
d¡¢ÊÊÓó¡¾°£ºÒ»¸öÀàÖ»ÓÐÒ»¸öʵÀý£¬Ìṩȫ¾Ö·ÃÎʽӿڣ»×ÊÔ´¹²ÏíµÄÇé¿öÏ£¬±ÜÃâÐÔÄÜ»òÆäËûËðºÄ£¬Èç¼ÆÊýÆ÷¡¢ÅäÖã»×ÊÔ´¿ØÖƵÄÇé¿öÏ£¬·½±ã×ÊÔ´Ö®¼äµÄ»¥ÏàͨÐÅ£¬ÈçÏ̳߳ء£
2¡¢¹¹ÔìÆ÷+ÔÐÍ
³¡¾°£º¾ÆµêÓжàÖÖÀàÐ͵ķ¿¼ä£¬ÈçºÎÃèÊö¸÷ÖÖ·¿¼äÖ®¼äµÄ¹ØÏµ¡£
Ïëµ½µÚÒ»ÖÖ£¬º¯Êý·½·¨£¬´úÂëÈçÏ£º
function Room(roomNumber, type, money) { 2 this.roomNumber = roomNumber; 3 this.type = type; this.money = money; 4 this.getInfo = function() { 5 return this.roomNumber + ', ' + this.type + ', ' + this.money; 6 }; 7 } 8 var roomA = Room('101', '±ê¼ä', 200); 9 console.log(roomA);//ÈçºÎ»ñÈ¡·¿¼äÐÅÏ¢ÄØ£¿£¿£¿ |
ÈçºÎ»ñÈ¡·¿¼äÐÅÏ¢³ÉΪһ´óÎÊÌ⣬ÏñµÚ8ÐдúÂëÄÇÑùÖ±½Óµ÷ÓÃRoom·½·¨£¬ÆäʵthisÖ¸ÏòµÄÊÇwindow¶ÔÏ󣬹ÊRoom·½·¨ÄÚ²¿µÄÊôÐԺͷ½·¨¸³Öµ¶¼ÊǸ³Öµ¸øÁËwindow¶ÔÏó£¬ËùÒÔ¼´Ê¹¿ÉÒÔͨ¹ýwindow.getInfo()À´µ÷Ó㬵«ÊÇÏԵúÁÎÞÒâÒå¡£
ÓÚÊÇ£¬ÎÒÃÇÏëµ½Á˹¹ÔìÆ÷µÄʵÏÖ·½·¨£¬´úÂëÈçÏ£º
function Room(roomNumber, type, money) { 2 this.roomNumber = roomNumber; 3 this.type = type; 4 this.money = money; 5 this.getInfo = function() { 6 return this.roomNumber + ', ' + this.type + ', ' + this.money; 7 }; 8 } 9 var roomA = new Room('101', '±ê¼ä', 200); 10 console.log(roomA.getInfo());//101,±ê¼ä,200 11var roomB = new Room('102', 'º£¾°·¿', 799); 12 console.log(roomB.getInfo());//102,º£¾°·¿,799 |
ÿ´Îµ÷ÓÃʹÓÃnew¹Ø¼ü×ÖʵÀý»¯¶ÔÏó£¬È»ºóµ÷ÓÃgetInfo·½·¨¡£
¹»¼òµ¥¡¢¹»Ö±¹Û£¬µ«ÊÇÓÖÓÐÐÂÎÊÌ⣬getInfoÿ´ÎʵÀý»¯¶¼ÒªÖØÐ´´½¨£¬ÏûºÄÄÚ´æ¡£
¿ªÆôÍⲿÌí¼ÓÔÐÍģʽ£¬´úÂëÈçÏ£º
function Room(roomNumber, type, money) { 2 this.roomNumber = roomNumber; 3 this.type = type; 4 this.money = money; 5 } 6 Room.prototype.getInfo = function() { 7 return this.roomNumber + ', ' + this.type + ', ' + this.money; 8 } 9 var roomA = new Room('101', '񈬄',200); 10 console.log(roomA.getInfo());//101,񈬄,200 11 Room.prototype.book = function() { 12 console.log("book success"); 13 } 14 roomA.book();//book success |
Óŵ㣺·½·¨¹²Ïí£¬½ÚÔ¼ÄÚ´æ£»ËæÊ±Ìí¼Ó·½·¨ÇÒ¿ÉÒÔ±»ÊµÀý»¯Ê¹Óã»
ȱµã£º·½·¨ÁãÉ¢£¬²»ÀûÓÚ¹ÜÀí¡£
ÄǾͰÑÔÐÍͳһÆðÀ´£¬´úÂëÈçÏ£º
function Room(roomNumber, type, money) { 2 this.roomNumber = roomNumber; 3 this.type = type; 4 this.money = money; 5 } 6 Room.prototype = { 7 constructor : Room, //ÕâÐдúÂëºÜÖØÒª£¬ÒòΪÒÑ¾ÖØÐ¶¨ÒåÁËprototypeµÄ¡°Ö¸Õ롱 £¬Èç¹û²»×Ô¼ºÖ¸¶¨µÄ»°Ä¬ÈϾÍÊÇobject£¬¶ø²»ÊÇRoom 8 getInfo : function() { 9 return this.roomNumber + ', ' + this.type + ', ' +this.money 10 } 11 } 12 var roomA = new Room('101', '±ê¼ä', 200); 13 console.log(roomA.getInfo());//101,±ê¼ä,200 14 console.log(roomA.constructor == Room);//true 15 console.log(roomA instanceof Room);//true |
ÆäÖУ¬ËùÓеķ½·¨ºÍ±äÁ¿¶¼»á±©Â¶³öÀ´£¬ÕâÏÔÈ»²»¹»ºÏÀí£¬¸ü¼ÓÓÅ»¯µÄ·½Ê½ÊǰÑRoom.prototypeÉè¼Æ³É½ÒʾÐ͵ÄÔÐÍ£¬ÀûÓÃ×ÔÖ´Ðк¯Êý¿ÉÒÔÓÐЧµØ±£»¤Ë½ÓбäÁ¿ºÍ·½·¨£¬Ö»±©Â¶×Ô¼ºÏ뱩¶µÄ¶«Î÷£¬´úÂëÈçÏ£º
Room.prototype = function(){ 2 var getInfo = function(){ 3 return this.roomNumber + ', ' + this.type + ', ' + this.money; 4 } 5 return { 6 constructor:Room, 7 getInfo : getInfo 8 } 9 }() |
×ܽ᣺
a¡¢ÊÊÓó¡¾°£ºÒ»¸öÀàÓжà¸öʵÀý£¬ÇÒÏ໥¶ÀÁ¢£¬ÈçUI×é¼þ¡£
3¡¢¼òµ¥¹¤³§Ä£Ê½
³¡¾°£ºÄ³ÂÃÓÎÍøÕ¾ÓлúƱԤ¶©ºÍ¾ÆµêÔ¤¶©¹¦ÄÜ£¬ÈçºÎʵÏÖËüÃǵĹØÏµ¡£
³¡¾°ÊµÏÖ£¬´úÂëÈçÏ£º
var PRODUCT_TYPE = { 2 AIR_TICKET : "01", 3 HOTEL : "02" 4 } 5 function User(){ 6 this.shopCart = []; 7 } 8 User.prototype = { 9 constructor : User, 10 order : function(productType){ 11 var product = null; 12 switch(productType){ 13 case PRODUCT_TYPE.AIR_TICKET: 14 product = new Flight(); 15 case PRODUCT_TYPE.HOTEL: 16 product = new Hotel(); 17 default: 18 } 19 this.shopCart.push(product); 20 } 21 } |
´ËʱÈç¹ûÏëÔö¼Ó»ð³µÆ±ÒµÎñ£¬É¾³ý»úƱҵÎñ£¬¸ÃÔõôʵÏÖ£¿ÐèÒª¸Ä¶¯µÄ´úÂëÒ»µã¶¼²»Áé»î£¬Õâʱ¾ÍÐèÒªÎÒÃÇÀíÇåÓû§ºÍ¾ßÌåÒµÎñÖ®¼äµÄ¹ØÏµ£¬Óû§½ö½öÖ»ºÍ¶©µ¥ÓйØÏµ¡£
ʹÓüòµ¥¹¤³§Ä£Ê½£¬´úÂëÈçÏ£º
var productFactory = (function(){ 2 var productFoctories = { 3 "airTicket" : function(){ 4 return new AirTicket(); 5 }, 6 "hotel" : function(){ 7 return new Hotel(); 8 } 9 } 10 return { 11 create : function(productType){ 12 return productFoctories[productType]; 13 } 14 } 15 })(); 16 User.prototype = { 17 constructor : User, 18 order : function(productType){ 19 var product = productFactory.create(productType); 20 this.shopCart.push(product); 21 } 22 } |
×ܽ᣺
¶ÔÏóµÄ´´½¨ºÍʹÓ÷ÖÀ룬ʹÓÃÒ»¸öÀàÉú³ÉʵÀý¡£
a¡¢Ê¹ÓÃÀàUser£ºÊ¹ÓÃÀà½öʹÓòúÆ·£¬Ö°Ôðµ¥Ò»£»
b¡¢¹¤³§ÀàFactory£º¶ÔÏóÀàµÄ¼¯ÖйÜÀí£»
c¡¢¶ÔÏóÀàHotel£ºÒ×ÓÚÀ©Õ¹£¬½öÓ°Ï칤³§Àࣻ
d¡¢ÊÊÓó¡¾°£º¸ù¾Ý²»Í¬²ÎÊý²úÉú²»Í¬ÊµÀý£¬ÕâЩʵÀýÓÐЩ¹²ÐԵij¡¾°£¬Ê¹ÓÃÕßÖ»ÐèʹÓòúÆ·£¬ÎÞÐè¹Ø×¢²úÆ·µÄ´´½¨Ï¸½Ú¡£
4¡¢¹¤³§Ä£Ê½
³¡¾°£ºÄ³ÂÃÓÎÍøÕ¾ÓкܶàÖ־Ƶ꣬²»Í¬µÄ¾ÆµêÄÚÒ²ÓкܶàÖÖ·¿¼ä£¬ÈçºÎÇå³þµØÃèÊöËüÃÇÖ®¼äµÄ¹ØÏµ¡£
¹¤³§ÊµÏÖ£¬´úÂëÈçÏ£º
/*********RoomBase ***********/ 2 var RoomBase = function(){}; 3 RoomBase.prototype = { 4 constructor : RoomBase, 5 create : function(){ 6 throw new Error("room create not impl!"); 7 }, 8 book : function(){ 9 this.state = "1"; 10 }, 11 hasWindow : function(){ 12 return true; 13 } 14 } 15 /********************/ 16 var RoomA = function(){}; 17 extend(RoomA, RoomBase);//¼Ì³Ð 18 RoomA.prototype.create = function(type){ 19 console.log("ÕâÊDZê¼ä"); 20 } 21 RoomA.prototype.hasWindow = function(){ 22 return false; 23 } 24 var RoomB = function(){}; 25 extend(RoomB, RoomBase); 26 RoomB.prototype.create = function(type){ 27 console.log("ÕâÊÇ´ó´²·¿"); 28 } 29 /*********HotelBase ***********/ 30 var HotelBase = function(){ 31 this.roomFoctory = {}; 32 }; 33 HotelBase.prototype = { 34 constructor : HotelBase, 35 getRoom : function(type){ 36 return this.roomFactory[type]; 37 }, 38 bookRoom : function(type){ 39 var room = this.getRoom(type); 40 room.book();//Ô¤¶© 41 } 42 } 43 var HotelA = function(){ 44 this.roomFoctory = { 45 "RoomA" : function(){ 46 return new RoomA(); 47 }, 48 "RoomB" : function(){ 49 return new RoomB(); 50 } 51 } 52 }; 53 extend(HotelA, HotelBase); 54 var HotelB = function(){ 55 this.roomFoctory = { 56 "RoomA" : function(){ 57 return new RoomA(); 58 }, 59 "RoomC" : function(){ 60 return new RoomC(); 61 } 62 } 63 }; 64 extend(HotelA, HotelBase); |
Õë¶Ô¸ÃÂÃÓÎÍøÕ¾£¬ÍøÕ¾¹ÜÀí¾Æµê£¬¾Æµê¹ÜÀí·¿¼ä£¬ÍøÕ¾²»ÄÜÖ±½Ó¹ÜÀí·¿¼ä£¬ËùÓз¿¼äÔ¤¶©µÄ¹¦ÄÜÈ«²¿×߾ƵêµÄ½Ó¿Ú£¬¸úÍøÕ¾Ã»ÓйØÏµ£¬ÌõÀí²Å±È½ÏÇåÎú¡£
×ܽ᣺
a¡¢¶ÔÏóµÄ´´½¨ºÍʹÓ÷ÖÀ룬×ÓÀà¾ö¶¨³ÉÔ±±äÁ¿µÄ¾ßÌåÀࣻ
b¡¢Ê¹ÓÃÀàHotelBase£ºÌṩ¶ÔÏóÀàµÄ¹ÜÀí£»
c¡¢´´½¨ÀàHotelA£º¹ÜÀí¶ÔÏóµÄʵÀý»¯£¬¶à̬£»
d¡¢¶ÔÏóÀàRoom£ºÖ°Ôðµ¥Ò»£¬À©Õ¹½öÓ°ÏìÏà¹Ø´´½¨Àࣻ
e¡¢¸ù¾Ý²»Í¬³¡¾°²úÉú²»Í¬ÊµÀý£¬ÕâЩʵÀýÓÐЩ¹²ÐԵij¡¾°£¬Ê¹ÓÃÕßÐèÒªÃ÷È·²úƷʹÓõij¡¾°£¬ÎÞÐè¹ØÐIJúÆ·´´½¨Ï¸½Ú¡£
5¡¢´´½¨ÐÍģʽ±È½Ï
¹¤³§Ä£Ê½£º
¢Ù¿É´´½¨¶à¸öÏàËÆ¶ÔÏó£»
¢ÚÆÁ±ÎÁË×Ó¶ÔÏóÀàÐÍ£¨ÈçÉÏÀýÖУ¬Ê¹ÓÃHotelÔ¤¶©µÄʱºòÎÒÃDz»ÖªµÀËüÊÇA¾Æµê»¹ÊÇB¾Æµê£¬Ô¤¶©µÄʱºòÊǵ÷ÓÃÁËHotelBaseµÄ»ùÀàÖеÄbookʵÏÖ£¬¸ù±¾Ã»ÓйØÐÄËüÊǾƵêA»¹ÊǾƵêB£©¡£
¹¹Ô캯Êýģʽ£º
¢Ù¿É´´½¨¶à¸öÏàËÆ¶ÔÏó£»
¢Ú¿Éʶ±ð×Ó¶ÔÏóÀàÐÍ£»
¢Û´´½¨¶à¸öÍê³ÉÏàͬÈÎÎñµÄʵÀý¡£
ÔÐÍģʽ£º
¢Ù¿É´´½¨¶à¸öÏàËÆ¶ÔÏó£»
¢Ú¿Éʶ±ð×Ó¶ÔÏóÀàÐÍ£»
¢Û¶à¸öʵÀý¹²Ïí¹«¹²·½·¨¡£
½á¹¹ÐÍģʽ 1¡¢Ä£¿éģʽ
var productFactory = (function(){ 2 var productFoctories = { 3 "airTicket" : function(){ 4 return new AirTicket(); 5 }, 6 "hotel" : function(){ 7 return new Hotel(); 8 } 9 } 10 return { 11 create : function(productType){ 12 return productFoctories[productType]; 13 } 14 } 15 })(); |
×ܽ᣺
a¡¢Ä£¿éģʽ¾ÍÊÇÎÒÃdz£ËµµÄÃüÃû¿Õ¼ä£¬ÀïÃæµÄ¶«Î÷¸ù±¾²»ÖØÒª£»
b¡¢±£»¤Ë½Óнӿڣ¬¿ª·Å¹«¹²½Ó¿Ú£»
c¡¢Ä£¿é»¯ÊÇÃæÏò¶ÔÏóµÄµÚÒ»²½£»
d¡¢×ñѵ¥Ò»Ö°ÔðÔÔò¡£
2¡¢Íâ¹Ûģʽ
1 /****Àý1*****/ 2 var product; 3 function getProduct(){ 4 if(!product){ 5 product = productFactory.create(); 6 } 7 return product; 8 } 9 /****Àý2*****/ 10 /** * ͬʱ×èֹʼþĬÈÏÐÐΪºÍðÅÝ * @param e */ 11 var stopEvent = function(e){ 12 e.stopPropagation(); 13 e.preventDefault(); 14 } |
¶ÔÏà¹ØµÄ²Ù×÷½øÐÐÒ»²ã°ü×°£¬±ÈÈçÀý2ÖÐÐèÒªÎÒÃÇÿ´Î×èֹʼþðÅݵÄʱºò´òÒ»¸öÈÕÖ¾console.log('ÈÕÖ¾')£¬ÄÇÎÒÃÇÖ»ÐèÒªÔÚstopEventµÄ·½·¨ÖÐд¾ÍÐÐÁË£¬¶ø²»ÐèÒªÔÚÿ¸öÐèÒª×èֹʼþðÅݵĵط½È¥´òÈÕÖ¾¡£
×ܽ᣺
a¡¢¸ü¸ß²ã´ÎµÄ½Ó¿Ú³éÏó£¬Òþ²Øµ×²ãµÄÕæÊµ¸´ÔÓÐÔ£»
b¡¢×ñÑ×îÉÙ֪ʶÔÔò¡££¨ÄãÖ»ÐèÒªÖªµÀÓÐÒ»¸ö½Ó¿Ú¿ÉÒÔʵÏÖÄãµÄÐèÇ󣬶øÄã²»ÐèÒªÖªµÀ½Ó¿ÚÖе½µ×µ÷ÓÃÁËÄÄЩ·½·¨È¥ÊµÏÖÄãµÄÐèÇó£©
3¡¢»ìÈëģʽ
³¡¾°£ºÒ»¸ö·¿×Ó¿ÉÒÔÓÃÀ´³ö×â»ò³öÊÛ£¬ÔÚ²»Í¬µÄ³¡¾°ÏÂÓв»Í¬µÄ¹¦ÄÜ£¬±ÈÈç³öÊÛ»¹Éæ¼°µ½·¿²úÖ¤µÈµÈÆäËûµÄһϵÁж«Î÷£¬ËùÒÔµ¥µ¥Í¨¹ýÒ»¸öÊôÐÔÊǰ첻µ½µÄ£¬Õâ¸öʱºò¾ÍÐèҪʹÓûìÈëģʽ¡£´úÂëÈçÏ£º
/******»ù´¡¶ÔÏó********/ 2 var Room = function(){}; 3 Room.prototype = { 4 constructor:Room, 5 create:function(){ 6 console.log('create'); 7 }, 8 book:function(){ 9 console.log('book'); 10 } 11 }; 12 /******»ìÈë¶ÔÏó********/ 13 var Goods = function(){}; 14 Goods.prototype = { 15 sell:function(){ 16 console.log('sell'); 17 } 18 }; 19 /******»ìÈë·½·¨********/ 20 var mixin = function (receiver, mixinObj) { 21 // Èç¹û´æÔÚÈý¸öÒÔÉϵIJÎÊýµÄ»°£¬´ÓµÚÈý¸ö¿ªÊ¼±íʾҪ»ìÈëµÄ·½·¨Ãû 22 if (arguments[2]) { 23 for (var i = 2, len = arguments.length; i < len; i++) { 24 receiver.prototype[arguments[i]] = mixinObj.prototype[arguments[i]]; 25 } 26 } 27 // ·ñÔò»ìÈëÈ«²¿·½·¨ 28 else{ 29 for(var methodName in mixinObj.prototype){ 30 // ·ÀÖ¹»ìÈ븲¸Ç 31 if(!receiver.prototype[methodName]){ 32 receiver.prototype[methodName] = mixinObj.prototype[methodName]; 33 } 34 } 35 } 36 } 37 38 /******»ìÈë²Ù×÷********/ 39 mixin(Room,Goods); 40 var roomA = new Room(); 41 roomA.sell();//µ÷ÓûìÈëºóµÄ·½·¨ |
¡°·¿ÎÝÀࡱ»ìÈë¡°ÉÌÆ·ÀࡱµÄ³öÊÛÊôÐÔ£¬·¿Îݾ;ßÓÐÁ˳öÊ۵ŦÄÜ£¬Í¬Àí£¬Èç¹û»ìÈëÁ˳ö×âµÄÊôÐÔ£¬¾Í¾ß±¸Á˳ö×âµÄ¹¦ÄÜ¡£

×ܽ᣺
a¡¢Í¨¹ýº¯Êý¸´Óôﵽ¶ÔÏóÀ©³äµÄÄ¿µÄ£»
b¡¢»ìÈëºÍ¼Ì³ÐµÄÇø±ð£º»ìÈëÖ»Íê³ÉÁË·½·¨µÄ×ªÒÆ£¬Á½¸ö¶ÔÏó»¹ÊÇÁ½¸ö¶ÔÏ󣬺ÁÎÞÈκιØÏµ£»
c¡¢»ìÈëºÍ×éºÏµÄÇø±ð£º×éºÏÊÇÓµÓеĹØÏµ£¬±ÈÈç¾ÆµêÓµÓз¿¼ä£¬¾Æµê¿ÉÒÔ²Ù×÷·¿¼ä£¬µ«ÊÇ·¿¼äµÄÊôÐÔ»¹ÊÇ·¿¼äµÄ£¬²»ÊôÓھƵꡣ
4¡¢×°ÊÎģʽ
³¡¾°£ºÒ»¸ö¾ÆµêµÄ·¿¼äÓе¼¾¼Û¸ñºÍÍú¼¾¼Û¸ñÖ®·Ö£¬ÈçºÎʵÏÖ¡£
var Room = function(price){ 2 this.price = price; 3 }; 4 Room.prototype = { 5 constructor:Room, 6 getPrice:function(){ 7 return this.price; 8 } 9 }; 10 var LowSeasonRoom = function(room){ 11 this.room = room;//×¢ÈëRoom£¬RoomºÍLowSeasonRoomÊÇ×éºÏµÄ¹ØÏµ 12 }; 13 LowSeasonRoom.prototype.getPrice = function(){ 14 return this.room.getPrice()*0.9; 15 }; 16 var HighSeasonRoom = function(room){ 17 this.room = room; 18 }; 19 HighSeasonRoom.prototype.getPrice = function(){ 20 return this.room.getPrice()*1.2; 21 }; 22 /****************ʹÓÃ*****************/ 23 var roomA = new LowSeasonRoom(new Room(200)); 24 console.log(roomA.getPrice());//180 |
×ܽ᣺
a¡¢¶¯Ì¬¸Ä±ä¶ÔÏóʵÏÖ¶ÔÏóÀ©³ä£»£¨±ÈÈçÃÜÂëÊäÈë¿òÊÇÎı¾ÊäÈë¿òµÄ×°ÊÎģʽ£¬´ÓÎı¾ÊäÈë¿òÖе¥¶À°þÀë³öÀ´µ¥¶ÀʵÏÖÃÜÂëÊäÈë¿òµÄÒµÎñÐèÇó£©
b¡¢È±µãÊÇÔö¼ÓÁ˼ܹ¹µÄ¸´ÔÓ¶È¡£
5¡¢ÊÊÅäģʽ
×ܽ᣺
a¡¢Ö÷ÒªÓÃÀ´½â¾ö¶ÔÏóÖ®¼äµÄ²»¼æÈÝÐÔ£»
b¡¢sumº¯Êý£º¿ÉÒÔ²»Ö»ÊÇÁ½¸öÊýµÄsum£¬¿ÉÒÔͨ¹ýargumentsÊÊÅä¶à¸ö²ÎÊýµÄsum£»
c¡¢jQuery°æ±¾Éý¼¶£º±ÈÈç°æ±¾Éý¼¶Ö®ºó·ÏÆúÁËij¸ö·½·¨Ò»¶¨ÊÇÓÐÆäËûµÄ·½·¨À´¼æÈÝ£»
d¡¢applyº¯Êý£ºÖ¸¶¨×÷ÓÃÓòËæÊ±¶¼¿ÉÒÔµ÷Óá£
ÐÐΪÐÍģʽ 1¡¢¹Û²ìÕßģʽ
³¡¾°£º¾ÆµêµÄij¸ö·¿¼äÐèÒª¿Í·¿·þÎñ£¬¾ÆµêÈçºÎÏìÓ¦¡£
var Room = function(){}; 2 Room.prototype = { 3 constructor : Room, 4 service : function(){ 5 this.fire("service", this.roomId); 6 } 7 } 8 var Hotel = function(){}; 9 Hotel.prototype.addRoom = function(room){ 10 room.on("service", function(){ 11 //TODO ·þÎñ 12 }); 13 } |
×ܽ᣺
a¡¢ÃüÁîµÄ·¢ÆðÕߺÍÖ´ÐÐÕß½âñîºÏ£¬don't call us,we will call you£»
b¡¢Ò»¸ö·¢ÆðÕß¿ÉÄܶÔÓ¦¶à¸öÖ´ÐÐÕߣ»
c¡¢Ò»¸öÖ´ÐÐÕßÒ²¿ÉÄÜÊÇÆäËûÖ´ÐÐÕßµÄÃüÁî·¢ÆðÕß
d¡¢³£Óõij¡¾°£º±ÈÈçÎÒÃÇÒ³ÃæÖо³£»áÓõ½iframe£¬Ò»¸ö×ÓÒ³ÃæÐèÒªµ÷Óø¸Ò³ÃæµÄ·½·¨£¬¾³£»áʹÓÃparent.functionNmae()È¥µ÷Ó㬵«ÊÇÒ»µ©È¡²»µ½¸¸Ò³Ã棬ÕâÀï¾Í»á±¨´í£¬ËùÒÔÕýÈ·µÄ´¦Àí·½Ê½ÊÇÔÚ¸¸Ò³Ãæ¼àÌýʼþ£¬ÔÚ×ÓÒ³Ãæ´¥·¢Ê¼þ£¬ÕâÑù¾ÍËã·þÎñ²»µ½Ò²²»»á±¨´í,ͨ³£ÔÚ¸¸×ÓÒ³ÃæÖж¼´æÔÚµÄÊÇbody£¬¹ÌÎÒÃÇϰ¹ßÐÔ°ÑʼþµÄ¼àÌýºÍ´¥·¢·Åµ½bodyÉÏÖ´ÐС£
2¡¢ÖнéÕßģʽ
³¡¾°£ºÒ»¸ö¾Æµêij¸ö·¿¼äÐèÒª·þÎñ£¬¾ÆµêÖÐÓжà¸ö·þÎñÔ±£¬Õâʱºò¸ÃÔõôʵÏÖÄØ¡£
Õâ¸öʱºò¾Í²»ÄÜÓù۲ìÕßģʽ£¬ÒòΪ¹Û²ìÕßģʽÊDz»È·¶¨ËÀ´·þÎñµÄ£¬ÍòÒ»¾ÆµêÖÐËùÓеķþÎñÔ±¶¼À´·þÎñÔõô°ì£¬µÃÓɾƵêÀ´È·¶¨µ½µ×Äĸö·þÎñÔ±¹ýÀ´Ìṩ·þÎñ¡£
var Room = function(){}; 2 Room.prototype = { 3 constructor : Room, 4 service : function(){ 5 this.fire("service", this.roomId, type); 6 } 7 } 8 var Waiter = function(){}; 9 Waiter.prototype = { 10 constructor : Waiter, 11 service : function(){ 12 //TODO ·þÎñ 13 } 14 } 15 var Hotel = function(){}; 16 Hotel.prototype.addRoom = function(room){ 17 room.on("service", function(roomId, type){ 18 if(type == "É豸ÐÞÀí"){ 19 waiterA.service(); 20 }else{ 21 if(roomId.startWith("3")){ 22 waiterB.service(); 23 }else{ 24 waiterC.service(); 25 } 26 } 27 }); 28 } |
×ܽ᣺
a¡¢¹ÜÀí¸´ÔÓ¶ÔÏó¹ØÏµ£º°Ñ¶à¶Ô¶à²ð·Ö³É¶à¶ÔÒ»£»
b¡¢¶ÔÏó¼äµÄñîºÏ×ªÒÆÖÁÖнéÕߣ»
c¡¢ÖнéÕßµÄÎȶ¨ÐÔÖÁ¹ØÖØÒª¡£
3¡¢ÃüÁîģʽ
³¡¾°£ºÈç¹û¾ÆµêÌṩµÄ·þÎñÓжàÖÖ¶àÑù£¬¸ÃÈçºÎʵÏÖ¡£
´Ëʱ¾ÍÐèÒªÓõ½ÃüÁîģʽ£¬´úÂëÈçÏ£º
var Services = { 2 clean : function(){ 3 console.log("´òɨÎÀÉú"); 4 }, 5 consult : function(){ 6 console.log("×Éѯ"); 7 } 8 } 9 var ServcieCommand = function(){ 10 return { 11 execute : function(receiver, command){ 12 receiver[command](); 13 } 14 } 15 }(); |
×ܽ᣺
a¡¢ÃüÁîµÄ·¢ÆðºÍʵÏÖ½âñîºÏ
4¡¢ÔðÈÎÁ´Ä£Ê½
³¡¾°£º¼ÙÉèij¸ö¾Æµê·¢ÉúÁ˶·Å¹£¬Èç¹û¾ÆµêÄÚ²¿¿ÉÒÔ´¦ÀíÔò×Ô¼º´¦Àí£¬·ñÔò¾ÍÈþ¯²ì´¦Àí£¬ÔðÈÎÒ»²ã²ã×ªÒÆ¡£
var Hotel = function(){ 2 this.on("fight", function(){ 3 if(this.canDo()){//ÄÚ²¿´¦Àí 4 this.do(); 5 }else{//±¨¾¯ 6 Police.do(); 7 } 8 }); 9 }; 10 Police = function(){ 11 return { 12 do : function(){ 13 if(this.canDo()){ 14 console.log("over"); 15 }else{ 16 //TODO תÉϼ¶´¦Àí¡£¡£¡£ 17 } 18 } 19 } 20 }();
|
×ܽ᣺
a¡¢Ã¿¸ö½ÚµãÖ»ÖªµÀÏÂÏߣ¬²»ÖªµÀ×îÖÕÖ´ÐÐÕߣ»
b¡¢¿ÉÄܳöÏÖÎÞÈË´¦ÀíµÄÇé¿ö£»
c¡¢È±µãµ÷ÊÔÀ§ÄÑ£¨ËùÒÔÐèÒªÎÒÃÇÔÚÿ¸öÖ´Ðл·½Ú´òÈÕÖ¾£©¡£
Éè¼ÆÔÔò 1¡¢µ¥Ò»Ö°ÔðÔÔò
ÈçºÎÈ·¶¨Ò»¸öÖ°ÔðorÁ½¸öÖ°Ôð£º
a¡¢Ö°Ôð±»¶¨ÒåΪ¡°ÒýÆð±ä»¯µÄÔÒò¡±£»
b¡¢ÈôÁ½¸öÖ°Ôð×ÜÊÇͬʱ±ä»¯£¬Ôò¿ÉÒÔ×÷Ϊһ¸öÖ°Ô𣻣¨±ÈÈçÇëÇóÊý¾ÝÖ®ºóäÖȾͼ±í£©
c¡¢·¢Éú±ä»¯²Å¶ÔÖ°ÔðµÄÏÞ¶¨ÓÐÒâÒ壬²»±äûÓбØÒª·ÖÀë
Î¥·´²»Ò»¶¨ÊÇ»µÊ£º
±ÈÈ磺$.attr()Õâ¸ö·½·¨Óи³ÖµÒ²ÓÐȡֵµÄÖ°Ô𣬵«ÊÇÄܺܺõØÕÒµ½Æ½ºâµã¡£
2¡¢×îÉÙ֪ʶÔÔò
¼õÉÙ¶ÔÏóÖ®¼äµÄÁªÏµ£º
a¡¢Á½¸ö¶ÔÏóÖ®¼ä²»±ØÖ±½ÓͨÐÅÔò²»Ö±½ÓͨÐÅ£¬Í¨¹ýµÚÈý·½ÊµÏÖͨÐÅ£»
b¡¢ÈçÖнéÕßģʽºÍÍâ¹Ûģʽ
Î¥·´²»Ò»¶¨ÊÇ»µÊ£º
±ÈÈ磺$.ajax ºÍ $.post
3¡¢¿ª·Å-·â±ÕÔÔò
¿ª·ÅºÍ·â±Õ£¨¶ÔÀ©Õ¹¿ª·Å£¬¶ÔÐ޸Ĺرգ©£º
a¡¢µ±ÐèÒª¸Ä±äʱ£¬¿ÉÒÔʹÓÃÔö¼Ó´úÂëµÄ·½Ê½£¬µ«²»ÔÊÐí¸Ä¶¯³ÌÐòµÄÔ´´úÂ룬±ÈÈç×é¼þÓÐbug»ò²»Âú×ãÐèÇóʱ£»
b¡¢±ÈÈçÒ»¸öºÜÀÏϵͳеÄÐèÇówindow.onloadµÄʱºòÐèҪͳһ´òÒ»ÏÂÈÕÖ¾£¬ÈçºÎ´¦Àí£¿
·¨1£ºÊ¹ÓÃjQuery£¬ÒòΪjQueryµÄʼþ¿ÉÒÔ¼àÌý¶à¸ö£»
·¨2£ºÖØÐ´onload·½·¨£¬ÖØÐ´µÄʱºòÏȵ÷ËüµÄ·½·¨£¬ÔÙµ÷×Ô¼ºµÄ·½·¨¡£
ÕÒ³ö±ä»¯µÄµØ·½ºÜÖØÒª£º
a¡¢ÌôÑ¡³ö×îÈÝÒ×·¢Éú±ä»¯µÄµØ·½½øÐгéÏó£¬À´·â±ÕÕâЩ±ä»¯£»
b¡¢²»¿É±ÜÃâ·¢ÉúÐÞ¸Äʱ£¬¾¡Á¿ÐÞ¸ÄÈÝÒ×Ð޸ĵĵط½£¬ÈçÐÞ¸ÄÅäÖñÈÐÞ¸ÄÔ´Âë¼òµ¥¡£ |