奮斗。!

          奮斗~

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            0 隨筆 :: 2 文章 :: 0 評論 :: 0 Trackbacks
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          留言簿

          文章分類

          文章檔案

          搜索

          最新評論

          一般我們在使用javascript中的類的時候,都是通過new來實例化這個類得到一個對象。

          使用new這個關鍵字,會改變函數上下文環境,并且改變了return語句的行為。

          比如一個Person類如下:

          function Person() {
              this.name = "hello";
          }; 

          當我們new Person的時候,改變的函數執行的上下文,因此,這個類擁有了一個屬性name,值為hello。 同時new還會改變return 語句的行為,會返回這個Person實例。

          然而當我們直接調用Person()方法的時候,由于沒有使用new關鍵字,因此函數執行的上下文沒有改變,依然是window。

          因此window多了一個屬性name,值為hello。

          測試代碼如下:

           1 var Person = function(name) {
           2     this.name = name;
           3 };
           4 
           5 var format = new Person('format');
           6 
           7 console.log(format instanceof Person);
           8 
           9 console.log("window property -> name:" + this.name);
          10 
          11 Person('format');
          12 
          13 console.log("window property -> name:" + this.name);

          結果如下:



          理解了上面所說的原理之后,開始構建javascript"類"庫。

          var Class = function() {
              var klass = function() {
                  this.init(arguments);
              };
              klass.prototype.init = function() {};
              return klass;
          };

          var Person = new Class;

          Person.prototype.init = function() {
              //類似構造方法。可以在這里做一些初始化操作。
          }

          //由于Class返回的依舊是一個函數,也就是類。因此我們可以實例化這個類。 得到實例對象
          var person = new Person;

          ....

          有了這個類庫之后, 當我們需要自己的類的時候,只需要new Class即可。 然后根據需求寫自己的初始化代碼。

          posted on 2012-07-16 23:15 丶format丨 閱讀(90) 評論(0)  編輯  收藏 所屬分類: javascript提高

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


          網站導航:
           
          主站蜘蛛池模板: 芦山县| 阿城市| 衡水市| 凤翔县| 芜湖市| 吴堡县| 红河县| 双鸭山市| 勐海县| 青田县| 禹城市| 宕昌县| 沿河| 兴和县| 黔南| 兴安盟| 广宗县| 瑞安市| 宁晋县| 凌海市| 阿克陶县| 盈江县| 渝中区| 宜都市| 友谊县| 景谷| 辰溪县| 凌源市| 稻城县| 正安县| 汤原县| 吉隆县| 黑龙江省| 新巴尔虎右旗| 新绛县| 高邮市| 昌邑市| 威远县| 临洮县| 安塞县| 富川|