简洁的几种javascript写法

来源:互联网 发布:冬天男帽子 知乎 编辑:程序博客网 时间:2024/05/17 22:28
1.关于对象的简洁写法。如果你想创建一个对象时,你需要这样写:
      var car = new Object();
       car.colour = 'red';
       car.wheels = 4;
       car.hubcaps = 'spinning';
       car.age = 4;

下面的写法同样可以达到效果:
      var car = {
                     colour:'red',
                     wheels:4,
                     hubcaps:'spinning',
                     age:4
     }
这样的写法简洁多了,也许可能会遇到InvalidUserInSession的问题,这个问题只有在使用IE浏览器的情况下遇到,只要记住在大括号的右侧前面不加,就不会有麻烦。

2.关于数组的简洁写法:
传统的数组定义方法是这样的:
 var moviesThatNeedBetterWriters = new Array( 'Transformers','Transformers2','Avatar','IndianaJones 4' );
  
简洁的写法是这样的:
var moviesThatNeedBetterWriters = [ 'Transformers','Transformers2','Avatar','IndianaJones 4'];

3.关于javascript中的内置函数Math.max()
      Math.max(12,123,3,2,433,4); // returns 433   
   这个函数能够校验数字,并且能够返回最大的数字。

4.匿名函数模块化。
   在javascript中最令人懊恼的是变量没有作用范围,任何变量、函数、数组、对象只要不是在函数内部,都被认为是全局的。也就是说这个页面上其他的脚本可以访问它,修改或覆盖它。
例如:
          var name = 'Chris';
          var age = '34';
          var status = 'single';
          function createMember(){
                    // [...]
           }
          function getMemberDetails(){
                   // [...]
          }
定义了三个全局变量和两个全局函数。一旦在这个页面上,如果有其他变量名定义为name或age、status,这样会造成变量引用混乱。

如果这样做,就可以避免了一些问题:将函数和变量都封装在另一个函数里面了
      var myApplication = function(){
              var name = 'Chris';
              var age = '34';
               var status = 'single';
           function createMember(){
                  // [...]
            }
          function getMemberDetails(){
                // [...]
           }
    }();

这样一来外面的函数就访问不到了上面内部的函数。如果可以让外部函数访问内部函数,可以这样:
          var myApplication = function(){
              var name = 'Chris';
              var age = '34';
              var status = 'single';
             return{
                        createMember:function(){
                                    // [...]
                         },
                        getMemberDetails:function(){
                                     // [...]
                         }
               }
       }();
         //myApplication.createMember() 和
        //myApplication.getMemberDetails() 就可以使用了。

这种被称作module或singlet模式。

还可以这样做:重新定义被外界访问元素的指针
         var myApplication = function(){
                   var name = 'Chris';
                   var age = '34';
                   var status = 'single';
             function createMember(){
                       // [...]
                 }
            function getMemberDetails(){
                     // [...]
                }
            return{
                   create:createMember,
                   get:getMemberDetails
            }
         }();
//现在写成 myApplication.get()和 myApplication.create() 就行了。
0 0
原创粉丝点击