javascriptдÀ෽ʽ֮ËÄ
ͨ¹ýÇ°Ãæ¼¸ÆªµÃÖªjavascriptдÀàÎÞ·Ç»ùÓÚ¹¹Ô캯Êý
ºÍÔÐÍ
¡£¼ÈÈ»ÕâÑù£¬ÎÒÃÇд¸ö¹¤¾ßº¯ÊýÀ´Ð´Àà¡£
/**
* $class дÀ๤¾ßº¯ÊýÖ®Ò»
* @param {Object} constructor
* @param {Object} prototype
*/
function $class(constructor,prototype) {
var c = constructor || function(){};
var p = prototype || {};
c.prototype = p;
return c;
}
àÅ¡£¹¤¾ßÀàдºÃÁË£¬À´×é×°Ï£ºÓù¹Ô캯ÊýÀ´Éú³ÉÀàʵÀýµÄÊôÐÔ£¨×ֶΣ©£¬ÔÐͶÔÏóÓÃÀ´Éú³ÉÀàʵÀýµÄ·½·¨¡£
//¹¹Ô캯Êý
function Person(name) {
this.name = name;
}
//ÔÐͶÔÏó
var proto = {
getName : function(){return this.name},
setName : function(name){this.name = name;}
}
//×é×°
var Man = $class(Person,proto);
var Woman = $class(Person,proto);
ok£¬ÕâʱºòÒѾµÃµ½ÁËÁ½¸öÀàMan£¬Woman¡£²¢ÇÒÊÇͬһ¸öÀàÐ͵ġ£²âÊÔÈçÏ£º
console.log(Man == Woman);//true
console.log(Man.prototype == Woman.prototype);//true
´´½¨¶ÔÏó¿´¿´£¬
var man = new Man("Andy");
var woman = new Woman("Lily");
console.log(man instanceof Man);//true
console.log(woman instanceof Woman);//true
console.log(man instanceof Person);//true
console.log(woman instanceof Person);//true
okÒ»ÇÐÈçÎÒÃÇËùÆÚÍû¡£µ«ÊÇÓиöÎÊÌ⣬ÏÂÃæ´úÂëµÄ½á¹ûÊä³öfalse£¬
console.log(man.constructor == Person);//false
ÕâÈÃÈ˲»Ô㺴ÓÒÔÉϵĴúÂë¿´³ömanµÄÈ·ÊÇͨ¹ýManÀànew³öÀ´µÄ var man = new Man("Andy")£¬ÄÇô¶ÔÏóʵÀýmanµÄ¹¹ÔìÆ÷Ó¦¸ÃÖ¸ÏòMan£¬µ«ÎªºÎÊÂÓëÔ¸Î¥ÄØ£¿
ÔÒò¾ÍÔÚÓÚ$classÖÐÖØÐ´ÁËPersonµÄÔÐÍ£ºc.prototype = p;
ºÃÁË£¬ÎÒÃǰÑ$classÉÔ΢¸ÄдÏ£¬½«·½·¨¶¼¹ÒÔÚ¹¹ÔìÆ÷µÄÔÐÍÉÏ£¨¶ø²»ÊÇÖØÐ´¹¹ÔìÆ÷µÄÔÐÍ£©£¬ÈçÏ£º
function $class(constructor,prototype) {
var c = constructor || function(){};
var p = prototype || {};
// c.prototype = p;
for(var atr in p)
c.prototype[atr] = p[atr];
return c;
}
Ïà¹ØÎĵµ£º
ÀàÊÇʲô£¿
Ðí¶à¸Õ½Ó´¥±à³ÌµÄÅóÓѶ¼¿ÉÄÜÀí½â²»ÁËÀ࣬ÆäʵÀàÊǶÔÎÒÃÇÕâ¸öÏÖʵÊÀ½çµÄÄ£Ä⣬°ÑËü˵³É“Àà±ð”»òÕß“ÀàÐÍ”¿ÉÄÜ»á¸üÈÝÒ×Àí½âһЩ¡£±ÈÈç“ÈË”ÕâÖÖ¶¯
Îï¾ÍÊÇÒ»¸öÀ࣬¶ø¾ßÌåijһ¸öÈ˾ÍÊÇ“ÈË”Õâ¸öÀàµÄÒ»¸öʵÀý
£¬
“È ......
Grouping Scripts ³É×é½Å±¾
Since each <script> tag blocks the page from rendering during initial download, it's helpful to limit the total number of <script> tags contained in the page. This applies to both inline scripts as well as those in external files. Every time ......
¾¼¸Ìì˼¿¼£¬Ïëµ½Ò»¸ö½Ð¡°ÎļþÓëÄ£¿é¡±µÄÎÊÌâ¡£ÎÒÃǵÄÄ£¿é¿Ï¶¨Ð´ÔÚÒ»¸öJSÎļþÖУ¬ÕâЩģ¿éÓÖ¿ÉÒÔ·ÖΪºËÐÄÄ£¿éÓëÍâΧģ¿é¡£ºËÐÄÄ£¿éµ±È»Ð´ÔÚÖ÷ÎļþÖУ¬ËüÓ¦¸Ã°üº¬×îÖØÒªµÄÂß¼£¬¼ÓÔØÆ÷£¬Áжӣ¬ÃüÃû¿Õ¼ä¹¹ÔìÆ÷µÈµÈ¡£µ«Èç¹ûÒ»¸öÎļþÖ»´æÔÚÒ»¸öÄ£¿éÕâҲ̫ÀË·ÑÁË£¬¶øÇһᵼÖÂÇëÇ󷨹ý¶à£¬Òò´Ë³öÏÖ¶à¸öÄ£¿é¡°¹²Éú¡±ÓÚÒ»¸öÎļþµÄÇé ......
ÇëÏÈ¿´ÏÂÌ⣺
if(true)
{
a = 1;
}
alert(a); //Êä³öɶ£¿
if(true)
{
var a = 1;
}
alert(a); //ÕâÓÖÊä³öʲô£¿
ÔÚfirefox3.5Ï£¬µÚÒ»¸öÊä³ö1;µÚ¶þ¸öÊä³öundefined£¡£¡£¡
ÎªÉ¶ÄØ£¿ºÇºÇ£¬±¾ÈËÔڴ˰àÃÅŪ¸«Ò»Ï£º
Ò»°ãÇé¿öÏÂȱʡvarÉùÃ÷ʱ£¬Ä¬È ......
È¡Ç°ÃæÁ½ÖÖµÄÓŵ㣺
a¡¢Óù¹Ô캯ÊýÀ´¶¨ÒåÀàÊôÐÔ£¨×ֶΣ©
b¡¢ÓÃÔÐÍ·½Ê½À´¶¨ÒåÀàµÄ·½·¨¡£
¾ÍÓÐÁ˵ÚÈýÖÖ·½Ê½¡£ÕâÖÖ·½Ê½Ã²ËƲÉÓõÄÈ˽϶ࡣ
3¡¢×ۺϹ¹Ô캯Êý/ÔÐÍ
/**
* PersonÀࣺ¶¨ÒåÒ»¸öÈË£¬ÓиöÊôÐÔname£¬ºÍÒ»¸ögetName·½·¨
* @param {String} name
*/
function Person(name) {
this.name = name;
}
Pers ......