µ±Ç°Î»ÖãºÊ×Ò³ > ¿ª·¢½Ì³Ì > js/jQuery½Ì³Ì >

JSÃæÏò¶ÔÏó½Ì³Ì(3)

ʱ¼ä£º2013-04-25 10:40 À´Ô´£ºÍøÂçÕûÀí ×÷Õߣº²É¼¯ÏÀ ÊÕ²Ø

ͨÓÃÉÏÃæÕâ¸öʾÀý£¬ÎÒÃÇ¿ÉÒÔ¿´µ½£¬PersonÀïµÄÊôÐÔ²¢Ã»Óб»ÕæÕý¸´ÖƵ½ÁËStudentÖÐÀ´£¬µ«ÊÇÎÒÃÇ¿ÉÒÔÈ¥´æÈ £ÕâÊÇÒòΪJavascriptÓÃίÍÐʵÏÖÁËÕâÒ»»úÖÆ¡£Æäʵ£¬Õâ¾ÍÊÇPrototype£¬PersonÊÇStudentµÄPrototype¡£ µ±ÎÒÃǵÄ

¡¡¡¡Í¨ÓÃÉÏÃæÕâ¸öʾÀý£¬ÎÒÃÇ¿ÉÒÔ¿´µ½£¬PersonÀïµÄÊôÐÔ²¢Ã»Óб»ÕæÕý¸´ÖƵ½ÁËStudentÖÐÀ´£¬µ«ÊÇÎÒÃÇ¿ÉÒÔÈ¥´æÈ¡¡£ÕâÊÇÒòΪJavascriptÓÃίÍÐʵÏÖÁËÕâÒ»»úÖÆ¡£Æäʵ£¬Õâ¾ÍÊÇPrototype£¬PersonÊÇStudentµÄPrototype¡£

¡¡¡¡µ±ÎÒÃǵĴúÂëÐèÒªÒ»¸öÊôÐÔµÄʱºò£¬JavascriptµÄÒýÇæ»áÏÈ¿´µ±Ç°µÄÕâ¸ö¶ÔÏóÖÐÊÇ·ñÓÐÕâ¸öÊôÐÔ£¬Èç¹ûûÓеĻ°£¬¾Í»á²éÕÒËûµÄPrototype¶ÔÏóÊÇ·ñÓÐÕâ¸öÊôÐÔ£¬Ò»Ö±¼ÌÐøÏÂÈ¥£¬Ö±µ½ÕÒµ½»òÊÇÖ±µ½Ã»ÓÐPrototype¶ÔÏó¡£

¡¡¡¡ÎªÁËÖ¤Ã÷Õâ¸öÊ£¬ÎÒÃÇ¿ÉÒÔʹÓÃObject.getPrototypeOf()À´¼ìÑéһϣº

Student.name = 'aaa'; 
//Êä³ö aaa 
document.write('<p>' + Student.name + '</p>'); 
//Êä³ö Chen Hao 
document.write('<p>' +Object.getPrototypeOf(Student).name + '</p>');

¡¡¡¡ÓÚÊÇ£¬Ä㻹¿ÉÒÔÔÚ×Ó¶ÔÏóµÄº¯ÊýÀïµ÷Óø¸¶ÔÏóµÄº¯Êý£¬¾ÍºÃÏñC++ÀïµÄ Base::func() Ò»Ñù¡£ÓÚÊÇ£¬ÎÒÃÇÖØÔØhelloµÄ·½·¨¾Í¿ÉÒÔʹÓø¸ÀàµÄ´úÂëÁË£¬ÈçÏÂËùʾ£º

//аæµÄÖØÔØSayHello·½·¨ 
Student.sayHello = function (person) { 
    Object.getPrototypeOf(this).sayHello.call(this); 
    var hello = "my student no is: " + this. no + ", <br>" + 
                "my departent is: " + this. dept; 
    document.write(hello + '<br>'); 
}

¡¡¡¡Õâ¸öºÜÇ¿´ó°É¡£

¡¡¡¡×éºÏ

¡¡¡¡ÉÏÃæµÄÄǸö¶«Î÷»¹²»ÄÜÂú×ãÎÒÃǵÄÒªÇó£¬ÎÒÃÇ¿ÉÄÜÏ£ÍûÕâЩ¶ÔÏóÄÜÕæÕýµÄ×éºÏÆðÀ´¡£ÎªÊ²Ã´Òª×éºÏÒòΪÎÒÃǶ¼ÖªµÀÊÇÕâÊÇOOÉè¼ÆµÄ×îÖØÒªµÄ¶«Î÷¡£²»¹ý£¬Õâ¶ÔÓÚJavascriptÀ´²¢Ã»ÓÐÖ§³ÖµÃÌرðºÃ£¬²»ºÃÎÒÃÇÒÀÈ»¿ÉÒԸ㶨¸öÊ¡£

¡¡¡¡Ê×ÏÈ£¬ÎÒÃÇÐèÒª¶¨ÒåÒ»¸öCompositionµÄº¯Êý£º(targetÊÇ×÷ÓÃÓÚÊǶÔÏó£¬sourceÊÇÔ´¶ÔÏó)£¬ÏÂÃæÕâ¸ö´úÂ뻹ÊǺܼòµ¥µÄ£¬¾ÍÊÇ°ÑsourceÀïµÄÊôÐÔÒ»¸öÒ»¸öÄóöÀ´È»ºó¶¨Òåµ½targetÖС£

¡¡¡¡function Composition(target, source)

¡¡¡¡{

¡¡¡¡var desc = Object.getOwnPropertyDescriptor;

¡¡¡¡var prop = Object.getOwnPropertyNames;

¡¡¡¡var def_prop = Object.defineProperty;

¡¡¡¡prop(source).forEach(

¡¡¡¡function(key) {

¡¡¡¡def_prop(target, key, desc(source, key))

¡¡¡¡}

¡¡¡¡)

¡¡¡¡return target;

¡¡¡¡}

¡¡¡¡ÓÐÁËÕâ¸öº¯ÊýÒÔºó£¬ÎÒÃǾͿÉÒÔÕâÀ´ÍæÁË£º


js/jQuery½Ì³ÌÔĶÁÅÅÐÐ

×îÐÂÎÄÕÂ