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

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


          <SCRIPT LANGUAGE="JavaScript">
          //此函數(shù)來(lái)至于prototype,由于此代碼只是簡(jiǎn)單的演示,所以就直接把其提取出來(lái)了.
          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");


          /**=================================
          通過(guò)這種方式雖然student繼承了pepole的屬性,但通過(guò)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)(通過(guò)對(duì)象復(fù)制來(lái)實(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)(通過(guò)對(duì)象復(fù)制來(lái)實(shí)現(xiàn))  回復(fù)  更多評(píng)論   

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

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

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

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

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

          # re: JavaScript的OOP初體驗(yàn)(通過(guò)對(duì)象復(fù)制來(lái)實(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)(通過(guò)對(duì)象復(fù)制來(lái)實(shí)現(xiàn))  回復(fù)  更多評(píng)論   

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

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 会昌县| 安泽县| 靖安县| 农安县| 兰州市| 汉源县| 阆中市| 永仁县| 正阳县| 临清市| 昆山市| 太谷县| 拜城县| 安康市| 铜鼓县| 右玉县| 革吉县| 吉水县| 环江| 濉溪县| 武威市| 临沭县| 江津市| 方山县| 黎川县| 大足县| 正安县| 喀什市| 康马县| 神木县| 延安市| 林周县| 轮台县| 清镇市| 洱源县| 虞城县| 磐石市| 华蓥市| 盖州市| 清镇市| 北宁市|