自知其無知
          不懂,慢慢懂。
          posts - 2,comments - 2,trackbacks - 0
          <script type="text/javascript"> 



          var Class = {
              create:
          function (){
                  
          return function(){
                      
          this.initialize.apply(this,arguments);
                  }

              }


           }


          var FileUpload = Class.create();



          function Test(){
              
          this.initialize.apply(this,arguments);    // 呵呵,可以仔細研究一下 apply() 方法了,因為確實是經典
                                                        // 這樣我們就可以在使用的時候
          }


          Test.prototype.initialize 
          = function(name){
              
              alert(name);
          }


          var aa = new Test('你好');


          function Test2(){
              
          //this.initialize.apply(this,arguments);
              this.initialize(arguments);  // 這里傳遞的 arguements 就是本身了,所以使用的時候,就應該是一個數組形式,
                                          // 不能直接訪問,而要用類似 arguments[0] 這樣的方式訪問
          }


          Test2.prototype.initialize 
          = function(name){
              
              alert(name);   
              alert(name.length);
          }


          var bb = new Test2('你好');

          /*
          FileUpload.prototype = {
            //表單對象,文件控件存放空間
            initialize: function(form, folder, options) {
              
              this.Form = $(form);//表單
              this.Folder = $(folder);//文件控件存放空間
              this.Files = [];//文件集合
              
              this.SetOptions(options);
              
              this.FileName = this.options.FileName;
              this._FrameName = this.options.FrameName;
              this.Limit = this.options.Limit;
              this.Distinct = !!this.options.Distinct;
              this.ExtIn = this.options.ExtIn;
              this.ExtOut = this.options.ExtOut;
              
              this.onIniFile = this.options.onIniFile;
              this.onEmpty = this.options.onEmpty;
              this.onNotExtIn = this.options.onNotExtIn;
              this.onExtOut = this.options.onExtOut;
              this.onLimite = this.options.onLimite;
              this.onSame = this.options.onSame;
              this.onFail = this.options.onFail;
              this.onIni = this.options.onIni;
              
              if(!this._FrameName){
                  //為每個實例創建不同的iframe
                  this._FrameName = "uploadFrame_" + Math.floor(Math.random() * 1000);
                  //ie不能修改iframe的name
                  var oFrame = isIE ? document.createElement("<iframe name=\"" + this._FrameName + "\">") : document.createElement("iframe");
                  //為ff設置name
                  oFrame.name = this._FrameName;
                  oFrame.style.display = "none";
                  //在ie文檔未加載完用appendChild會報錯
                  document.body.insertBefore(oFrame, document.body.childNodes[0]);
              }
              
              //設置form屬性,關鍵是target要指向iframe
              this.Form.target = this._FrameName;
              this.Form.method = "post";
              //注意ie的form沒有enctype屬性,要用encoding
              this.Form.encoding = "multipart/form-data";

              //整理一次
              this.Ini();
            },
            //設置默認屬性
            SetOptions: function(options) {
              this.options = {//默認值
                  FileName:    "filename",//文件上傳控件的name,配合后臺使用
                  FrameName:    "",//iframe的name,要自定義iframe的話這里設置name
                  onIniFile:    function(){},//整理文件時執行(其中參數是file對象)
                  onEmpty:    function(){},//文件空值時執行
                  Limit:        10,//文件數限制,0為不限制
                  onLimite:    function(){},//超過文件數限制時執行
                  Distinct:    true,//是否不允許相同文件
                  onSame:        function(){},//有相同文件時執行
                  ExtIn:        ["gif","jpg","rar","zip","iso","swf"],//允許后綴名
                  onNotExtIn:    function(){},//不是允許后綴名時執行
                  ExtOut:        [],//禁止后綴名,當設置了ExtIn則ExtOut無效
                  onExtOut:    function(){},//是禁止后綴名時執行
                  onFail:        function(){},//文件不通過檢測時執行(其中參數是file對象)
                  onIni:        function(){}//重置時執行
              };
              Extend(this.options, options || {});
            },
            //整理空間
            Ini: function() {
              //整理文件集合
              this.Files = [];
              //整理文件空間,把有值的file放入文件集合
              Each(this.Folder.getElementsByTagName("input"), Bind(this, function(o){
                  if(o.type == "file"){ o.value && this.Files.push(o); this.onIniFile(o); }
              }))
              //插入一個新的file
              var file = document.createElement("input");
              file.name = this.FileName; file.type = "file"; file.onchange = Bind(this, function(){ this.Check(file); this.Ini(); });
              this.Folder.appendChild(file);
              //執行附加程序
              this.onIni();
            },
            //檢測file對象
            Check: function(file) {
              //檢測變量
              var bCheck = true;
              //空值、文件數限制、后綴名、相同文件檢測
              if(!file.value){
                  bCheck = false; this.onEmpty();
              } else if(this.Limit && this.Files.length >= this.Limit){
                  bCheck = false; this.onLimite();
              } else if(!!this.ExtIn.length && !RegExp("\.(" + this.ExtIn.join("|") + ")$", "i").test(file.value)){
                  //檢測是否允許后綴名
                  bCheck = false; this.onNotExtIn();
              } else if(!!this.ExtOut.length && RegExp("\.(" + this.ExtOut.join("|") + ")$", "i").test(file.value)) {
                  //檢測是否禁止后綴名
                  bCheck = false; this.onExtOut();
              } else if(!!this.Distinct) {
                  Each(this.Files, function(o){ if(o.value == file.value){ bCheck = false; } })
                  if(!bCheck){ this.onSame(); }
              }
              //沒有通過檢測
              !bCheck && this.onFail(file);
            },
            //刪除指定file
            Delete: function(file) {
              //移除指定file
              this.Folder.removeChild(file); this.Ini();
            },
            //刪除全部file
            Clear: function() {
              //清空文件空間
              Each(this.Files, Bind(this, function(o){ this.Folder.removeChild(o); })); this.Ini();
            }
          }
          */

          </script>
          posted on 2008-12-05 11:39 CopyHoo 閱讀(581) 評論(0)  編輯  收藏 所屬分類: JavaScript
          主站蜘蛛池模板: 漳平市| 临武县| 时尚| 玉环县| 彩票| 黎川县| 石棉县| 汉沽区| 和平县| 梓潼县| 明星| 宁武县| 临泉县| 鹰潭市| 安乡县| 开远市| 惠东县| 桂阳县| 新乐市| 尼玛县| 神农架林区| 保定市| 福泉市| 葫芦岛市| 石河子市| 澄城县| 南城县| 靖边县| 河曲县| 新蔡县| 黄龙县| 阜新| 十堰市| 南江县| 万源市| 尖扎县| 葫芦岛市| 霍山县| 瓦房店市| 平湖市| 长宁区|