<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      ECMAScript一步一步創建自己的js類庫(一):理解函數

      ECMAScript中最有意思,最強大的地方在于函數。最進在完善自己的js類庫的時候發現我們經常在用函數,但真的很少有人懂得ECMAScript函數功能。

      1:什么是函數?

        ECMAScript函數其實就是對象,每個函數都是Function類型的實例而且有屬性和方法,由于函數是對象,函數名其實就是指向函數對象的指針,不會與某個函數綁定。

      2:創建函數的方法

      (1):function Person(name)
         {
          return name;
         }
      (2):var Person=function(name)
        {
        return name;
        }
      
      (3):var Person=new function(“name”,”return name”);(不推薦使用,ECMAScript會解析兩次所以不推薦使用)

       

      3:函數聲明和函數表達式的不同

        ECMAScript對函數聲明和函數表達式的解析并非一視同仁,解析器會先讀取函數聲明,并使其在任何代碼前都可用。

        例:

      assert(false);
       function assert(value, msg) {
       if (!value) {
             alert (msg || (value + " does not equal true"));
                  }
           }

      函數表達式為執行到這一行才解析器才會解析

      如:assert(false);
            var assert=  function (value, msg) {
                  if (!value) {
                      alert (msg || (value + " does not equal true"));
                  }
      
              }

      4:理解this屬性

       this 屬性是我們經常用的屬性,其行為與Java,C#,PHP大致類似。

      如:window.name=’用未來思考現在’;
      
      window.name = "用未思考現在;
              showName();
              function showName() {
                  alert(this.name);
              }

      5:創建自己的類庫插件

      簡單的介紹了下函數,對于理解函數這些內容遠遠不夠,例如構造函數模式,原形模式,原形鏈等等都是要花很多時間去理解。

      創建類

      var Class = function () {
          var extclass = function () {
             //接收屬性傳過來的參數
              this.init.apply(this, arguments);
          }
          //給類添加自定義屬性
          extclass.prototype.init = function () { };
          //給prototypr定義別名?
          extclass.fn = extclass.prototype;
          //定義類的別名?
          extclass.fn.parent = extclass;
          //給類添加屬性
          extclass.extend = function (obj) {
              var extended = obj.extended;
              for (var i in obj) {
                  extclass.fn[i] = obj[i];
              }
              if (extended) extended(extclass);
          };
      
          //給實例添加屬性
          extclass.include = function (obj) {
              var included = obj.included;
              for (var i in obj) {
                  extclass.fn[i] = obj[i];
              }
              if (included) included(extclass);
          }
          return extclass;
      
      }

      類庫大致的框架構建完成,這樣我們創建類可以調用extended方法,創建實例可以調用include方法。下一章節會在此基礎上擴展更多功能,基于原型給“類”添加繼承。

      posted @ 2012-11-22 09:24  用未來思考現在  Views(1398)  Comments(5)    收藏  舉報
      主站蜘蛛池模板: 亚洲欧美偷国产日韩| 亚洲精品无码成人A片九色播放| 亚洲精品日韩在线丰满| 丰满无码人妻热妇无码区| 中文字幕乱偷无码av先锋蜜桃| 好吊妞视频这里有精品| 国产毛片精品一区二区色| 精品国产一区av天美传媒| 久热这里只精品99国产6-99RE视… | 久青草国产综合视频在线| 91精品蜜臀国产综合久久| 女同久久一区二区三区| 欧美日韩精品一区二区视频| 中文字幕乱码一区二区免费| 欧洲精品码一区二区三区| 国产一区在线播放av| 互助| 久久久久久久久久久久中文字幕 | 久热久视频免费在线观看| 成人国产乱对白在线观看| 国产在线精品一区二区夜色| 国产第一区二区三区精品| 久久久久国产精品人妻| 国产精品无码无片在线观看3d| 日本一区不卡高清更新二区| 朝阳区| 午夜一区二区三区视频| 久久午夜无码鲁丝片直播午夜精品| 日韩亚洲精品国产第二页| 精品久久精品久久精品久久| 国产精品午夜福利精品| 欧美不卡一区二区三区 | 亚洲精品岛国片在线观看| 国产精品制服丝袜第一页 | 久久精品国产再热青青青| 午夜激情小视频一区二区| 九九热视频在线播放| 欧美18videosex性欧美tube1080| 国产精品视频一区不卡| 成人性无码专区免费视频| 日韩人妻少妇一区二区三区 |