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

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


          <SCRIPT LANGUAGE="JavaScript">
          //此函數(shù)來至于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!");
            }
           }
          )

          /**======================================
          我比較奇怪的是上面的函數(shù)調(diào)用下面這段替換怎么就不行
          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>
          本代碼最初發(fā)表于 http://blog.openj.cn

          </BODY>
          </HTML>


          評(píng)論

          # re: JavaScript的OOP初體驗(yàn)(通過對(duì)象復(fù)制來實(shí)現(xiàn))  回復(fù)  更多評(píng)論   

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

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

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

          # re: JavaScript的OOP初體驗(yàn)(通過對(duì)象復(fù)制來實(shí)現(xiàn))  回復(fù)  更多評(píng)論   

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

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

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

          # re: JavaScript的OOP初體驗(yàn)(通過對(duì)象復(fù)制來實(shí)現(xiàn))  回復(fù)  更多評(píng)論   

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

          # re: JavaScript的OOP初體驗(yàn)(通過對(duì)象復(fù)制來實(shí)現(xiàn))  回復(fù)  更多評(píng)論   

          2007-04-17 09:00 by 周小鋤
          其實(shí)是可以的,改一下People的構(gòu)造函數(shù):
          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初體驗(yàn)(通過對(duì)象復(fù)制來實(shí)現(xiàn))  回復(fù)  更多評(píng)論   

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

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 河北区| 华容县| 平南县| 海原县| 荣成市| 平利县| 张家口市| 华宁县| 正蓝旗| 闸北区| 聊城市| 平武县| 巴彦淖尔市| 确山县| 宝鸡市| 夹江县| 万州区| 监利县| 汝州市| 东山县| 丰台区| 永寿县| 鄱阳县| 延吉市| 东乌| 许昌县| 长乐市| 甘泉县| 南通市| 嘉义县| 海丰县| 塔城市| 蛟河市| 德保县| 嘉荫县| 乐安县| 鹤山市| 台山市| 永城市| 渝中区| 湘潭市|