0 Comments

雕虫无小技 JavaScript初学者的10个迷你技巧(2)

发布于:2013-09-30  |   作者:广州网站建设  |   已聚集:人围观

7,把对象当成参数,来组织和改善函数

在现代Web开发中,对象最普遍的一个用途是把它们当成函数的参数。要记住函数参数的这个规则总是很困难的;但是,使用一个对象是十分有好处的,因为我们不必再担心参数的规则了。而且,它更有组织性,可以让用户更好的理解我们要做什么。这个方法可以让你把对象当成参数,来组织和改善函数。例如:


  1. function insertData(name,lastName,phone,address){  
  2.     code here;  

重构以后的代码是这样的:
广州网站建设,网站建设,广州网页设计,广州网站设计


  1. function insertData(parameters){  
  2.     var name = parameters.name;  
  3.     var lastName = parameters.lastName;  
  4.     var phone = parameters.phone;  
  5.     var address = parameters.address;  

当你要使用默认值的时候,它也是十分有用的。例如:


  1. function insertData(parameters){  
  2.     var name = parameters.name;  
  3.     var lastName = parameters.lastName;  
  4.     var phone = parameters.phone;  
  5.     var address = parameters.address;  
  6.     var status = parameters.status || 'single' //If status is not defined as a property  //in the object the variable status take single as value  

现在,要使用这个函数十分的简单;我们可以用两种方式来发送数据:


  1. //Example 1  
  2. insertData({name:’Mike’, lastName:’Rogers’, phone:’555-555-5555’,address:’the address’, status:’married’});  
  3.    
  4.    
  5. //Example 2  
  6. var myData = {       name:’Mike’,   
  7.                          lastName:’Rogers’,   
  8.                                phone:’555-555-5555’,  
  9.                              address:’the address’,   
  10.                                 status:’married’  
  11.                        };  
  12.    
  13. insertData(myData); 

8,函数就是数据

函数就是像strings或numbers那样的数据,我们可以把它们当成函数参数来传递它们,这可以创建十分令人惊讶而又“威风凛凛”的Web应用程序。这个方法是非常有用的,几乎所有的主流框架都使用了这个方法。例如:
广州网站建设,网站建设,广州网页设计,广州网站设计


  1. function byId(element, event, f){  
  2.     Document.getElementById(element).['on'+event] = f; //f is the function that we pass as parameter  
  3. }  
  4.    
  5. byId('myBtn','click',function(){alert('Hello World')});  
  6.    
  7. Another example of functions as data:  
  8.    
  9. //Example 1  
  10. function msg(m){  
  11.     Alert(m);  
  12. }  
  13.    
  14. //Example 2  
  15. var msg = function(m){ alert(m);}  

这些函数几乎是完全相同的。唯一的区别是使用它们的方式。例如:第一个函数,在你声明它以前,你就可以使用它了;但是第二个函数只有声明以后才能使用:


  1. //Example 1  
  2. msg('Hello world'); //This will work  
  3.    
  4. function msg(m){  
  5.     alert(m);  
  6. }  
  7.    
  8. //Example 2  
  9. msg('Hello world'); //Does not work because JavaScript cannot find the function msg because is used before is been declared.  
  10.    
  11. var msg = function(m){ alert(m)} 

9,扩展本地对象

虽然一些JavaScript的领袖不推荐这个技术,但是它已经被一些框架使用了。它可以让你针对JavaScript API来创建一些辅助性的方法。


  1. //We create the method prototype for our arrays  
  2. //It only sums numeric elements  
  3.    
  4. Array.prototype.sum = function(){  
  5.     var len = this.length;  
  6.     total = 0;  
  7.     for(var i=0;i<len ;i++){  
  8.         if(typeof this[i]!= 'number'continue;  
  9.          total += this[i];  
  10.     }  
  11.     return total;  
  12. }  
  13.    
  14. var myArray = [1,2,3,'hola'];  
  15. myArray.sum();  
  16.    
  17.    
  18.    
  19.    
  20. Array.prototype.max = function(){  
  21.     return Math.max.apply('',this);  
  22. }  
  23.   

10,Boolean

注意它们之间的区别,因为这会节省你调试脚本的时间。


  1. '' == '0'          // false  
  2. 0 == ''            // true  
  3. 0 == '0'           // true  
  4. false == 'false'   // false  
  5. false == '0'       // true  
  6. false == undefined // false  
  7. false == null      // false  
  8. null == undefined  // true  
  9. true == 1          // true  
  10. '' == null         // false  
  11. false == ''        // true 

如果你在其他地方看过这些脚本,那么这些技巧可以帮助你融会贯通。这些技巧甚至还不及JavaScript所有功能的冰山一角,但是这是一个开始!请不要客气,留下你的评论,问题,额外的技巧或疑虑吧,但是请记住,这是一篇针对初学者的文章!!我希望能收到一些开发者同行的来信!Enjoy!

标签:
飞机