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,由于此代碼只是簡(jiǎn)單的演示,所以就直接把其提取出來了.
          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ì)爭(zhēng)大呢?

          # 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)航:
           
          主站蜘蛛池模板: 老河口市| 石家庄市| 育儿| 大方县| 长宁县| 平度市| 疏附县| 赣州市| 临武县| 江城| 重庆市| 游戏| 霍林郭勒市| 体育| 吕梁市| 日照市| 双流县| 株洲市| 全州县| 沅江市| 罗江县| 宜昌市| 丰城市| 鄂尔多斯市| 邯郸县| 南岸区| 太仆寺旗| 晋中市| 习水县| 桦川县| 丹凤县| 乐平市| 安康市| 新昌县| 巴青县| 彭阳县| 双桥区| 顺义区| 龙南县| 吉首市| 泸西县|