posts - 82, comments - 269, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          公告

          收藏夾

          搜索

          •  

          積分與排名

          • 積分 - 269970
          • 排名 - 211

          最新評論

          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
          <HTML>
          <HEAD>
          <TITLE> Prototype </TITLE>


          <SCRIPT LANGUAGE="JavaScript">
          //此函數來至于prototype,由于此代碼只是簡單的演示,所以就直接把其提取出來了.
          Object.extend = function(destination, source) {
            for (var property in source) {
              destination[property] = source[property];
            }
            return destination;
          }

          function Student(major){
           this.major=major;
          }


          Object.extend(Student.prototype, {
            sayHello: function(){
             alert("Hello world!");
            }
           }
          )

          /**======================================
          我比較奇怪的是上面的函數調用下面這段替換怎么就不行
          function People(){ 
           sayHello= function(){
            alert("Hello world!");
           }
          }
          var people= new People();
          var stu=new Student("manage");
          Object.extend(stu,people);

          =========================================**/

           


          var stu=new Student("manage");


          /**=================================
          通過這種方式雖然student繼承了pepole的屬性,但通過instanceof,最后的屬性并不是people
          ==================================**/
          stu.sayHello();


          for (var property in stu) {   
           alert(property);
          }


          </SCRIPT>

           


          </HEAD>

          <BODY>
          本代碼最初發表于 http://blog.openj.cn

          </BODY>
          </HTML>


          評論

          # re: JavaScript的OOP初體驗(通過對象復制來實現)  回復  更多評論   

          2007-04-06 16:37 by liuganquan
          function People(){
          sayHello= function(){
          alert("Hello world!");
          }
          }
          添加方法定義出錯了吧
          function People(){

          }
          People.prototype.sayHello= function(){
          alert("Hello world!");
          };

          Object.extend(Student.prototype,People.prototype);
          就可以了

          # re: JavaScript的OOP初體驗(通過對象復制來實現)  回復  更多評論   

          2007-04-06 21:14 by itspy
          樓上說的確實可以,但不知道為什么一定要

          Object.extend(Student.prototype,People.prototype);

          下面兩種為什么不行?
          Object.extend(Student.prototype,People);
          Object.extend(Student,People);

          # re: JavaScript的OOP初體驗(通過對象復制來實現)  回復  更多評論   

          2007-04-06 21:17 by TiGERTiAN
          js里面類擴充方法最基本都是用prototype 啊。。。怎么會爭大呢?

          # re: JavaScript的OOP初體驗(通過對象復制來實現)  回復  更多評論   

          2007-04-17 09:00 by 周小鋤
          其實是可以的,改一下People的構造函數:
          People = function(){
          this.sayHello=function(){
          alert('hello world');
          } ;
          };

          var people=new People();
          var stud=new Student('manage');
          Object.extend(stud,people);
          stud.sayHello();//alert:hello world

          # re: JavaScript的OOP初體驗(通過對象復制來實現)  回復  更多評論   

          2007-09-04 11:44 by stevenhong
          function People(){
          sayHello= function(){
          alert("Hello world!");
          }
          }
          問題是這個就不是一個對象。

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 桦川县| 邯郸市| 哈尔滨市| 潼关县| 河北区| 尖扎县| 东乡族自治县| 宜阳县| 紫云| 孟津县| 革吉县| 肇州县| 宁阳县| 施秉县| 巴林右旗| 济南市| 巩义市| 石城县| 大田县| 江都市| 珲春市| 鹿邑县| 临猗县| 亳州市| 承德县| 娄烦县| 凯里市| 南靖县| 榆社县| 定日县| 康平县| 富川| 吉木乃县| 五常市| 罗甸县| 交口县| 合江县| 华宁县| 搜索| 夹江县| 江安县|