重学JS

来源:互联网 发布:为什么帅哥配丑女 知乎 编辑:程序博客网 时间:2024/05/17 01:21

最近去51JS.com,学了不少新东西,总结一下:


一、函数替换

 函数可以这样用=等号重新命名

  dw=document.write;
  dw('ok');

  function print(str) {
    document.write(str)
  }
  function Int(A){return parseInt(A);}
 
 个人认为尽量少用,不利于学习。

二、尽量用W3C规范ID号用法

  function $(A){return document.getElementById(A);}

  function $(ID){
        return typeof(ID)=="string" ? document.getElementById(ID) : ID;
  }
  这样就能确保经$取元素后的返回结果是 Object。
  function $(ID){
      var elem = typeof(ID)=="string" ? document.getElementById(ID) : ID;
       extend(elem,Element.Method);   // Element.Method 是一个方法库(一个类)
       return elem;
  }
  这样不但能确保返回值是Object,还能把方法库的方法赋给结果。比如经 $(document.body) 后,body就能继承方法库的方法。

  function $(s){
          if(document.getElementById){
                   return eval('document.getElementById("' + s + '")');
          }else{
                  return eval('document.all.' + s);
          }
  }

三、类定义


  function className(){         //className是类 因为function是定义框架、定义函数

          var Var1 = 1;                //私有成员变量
          this.Var2 = 2;               //公有成员变量
   className.Var3 = 3;      //静态成员,但必须至少有有一个实例先生成才能引用 

          this.fun1 = function(){ } //公有成员函数          

          var fun2 = function(){}; //私有成员函数
             function  fun3(){};      // 私有成员函数

   className.fun3 = function(){ //静态成员函数,但必须至少有有一个实例先生成才能引用
   }
    
  }
 new className();
 className.fun3();


 这样很清晰、简洁。

四、结构


  //这里Obj是目标成员
  var Obj = {
     fun: function(str){alert(str);}
     ,zxd:123
  }
  Obj.fun(Obj.zxd);

  //可以用this引用自身
  var Obj = {
     fun: function(str){alert(this.zxd);}
     ,zxd:123
  }
  Obj.fun();
 

五、数组定义

  var a = [];
  var a =[12];
  var a =[12,56];
  var a = new Array("1","2","3");
  var MyArray = {"a" : "Athens", "b" : "Belgrade", "c" : "Cairo" };


六、消息定义

        document.onmouseup = fun;   //传统写法

        $(idName).onmousedown = function(){ CC=2;} //ID目标消息函数


七、脚本声明

 <script type="text/javascript">
 
八、注解
 
 <!-- MAC 效果 -->
 <!--------------->

九、计时器

 function autodown(){
    if(!end){
      movedown();
      timer=setTimeout("autodown();",1000/speed);
 }else
      clearTimeout(timer);
 }


 封包setTimeout

 function test(){

  var testobj = this;
 
     this.s=function(n){

    alert(n);

  setTimeout(function(){testobj.s(n+1);},1000);

    }

 }
 var t = new test();
 t.s(1);


十、动态增加消息

 document.all("xtw_"+i).attachEvent( "onmouseover",ghover);
 document.all("xtw_"+i).attachEvent( "onmouseout",ghout);

十一、颜色渐变

 function ghover(){
  event.srcElement.className="xtw_over";
 }
 function ghout(){
  event.srcElement.className="defaultimg";
 }

十二、判断IE与ns6

 var ns6=document.getElementById&&!document.all
 var ie=document.all


 是否支持W3C
 document.getElementById