¡¡¡¡Í¨ÓÃÉÏÃæÕâ¸öʾÀý£¬ÎÒÃÇ¿ÉÒÔ¿´µ½£¬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;
¡¡¡¡}
¡¡¡¡ÓÐÁËÕâ¸öº¯ÊýÒÔºó£¬ÎÒÃǾͿÉÒÔÕâÀ´ÍæÁË£º
¡¾JQ¡¿ÎÞÏÞ¹ö¶¯Ìõ-jquery.infinitescroll.j
query¶àÑ¡ÏÂÀ¿ò²å¼þ jquery-multiselect(
¶ÔJavaScript¶ÔÏóÊý×é°´Ö¸¶¨ÊôÐÔºÍÅÅÐò·½Ïò
±ÏÏò¶«Html¡¢css¡¢JavaScriptÊÓƵ½Ì³Ì(ºÚÂí
ÊÖ»úÕ¾jQuery×Ô¶¯Íê³É²å¼þautoComplete.js
JavascriptÐÂÊֽ̳̣º´ÓÈëÃŵ½¾«Í¨£¨ÍêÕû°æ
ÈÈÃÅÔ´Âë