日期:2014-05-16  浏览次数:20349 次

javascript的四种书写风格
下面我写出四种既风格来完成相同既功能。

第一种:

function utils(){
  var a="aa";
  this.myalert=function (){
   alert(a);
  }
  this.setA=function(){
   a=arguments[0];
  }
 }
 
 var theutils=new utils();
 theutils.setA("bbbb");
 theutils.myalert();
 


第二种:

var utils=function (){
  var a="aa";
  return {
   myalert:function(){
    alert(a);
   },
   setA:function(){
    a=arguments[0];
   }
  }
 }();

第三,四种都是使用prototype属性来写的。

var utils=function(){
  var a="aa";
 }
 
 utils.prototype.myalert=function (){
   alert(a);
 }
 utils.prototype.setA=function(){
   a=arguments[0];
 }
 
 
 var theutils=new utils();
 theutils.setA("bbbb");
 theutils.myalert();
 


第四种:

var utils=function(){
  var a="aa";
 }
 
 utils.prototype={
   myalert:function (){
    alert(a);
   },
   setA:function(){
    a=arguments[0];
   }
 }
 
 var theutils=new utils();
 theutils.setA("bbbb");
 theutils.myalert();


虽然它们实现相同的功能,但是性能不有所区别的,只是在客户端的话,这些小脚本用不了多小时间,就忽略了,看个人习惯来用是最好不过的了。



最后还介绍个匿名函数吧。

这个函数的作用就是其实也很大,比如你要引用一个JS文件的时候,最好用上距,匿名函数最大的作用就是保护好局部的变量不受外部变量的影响。如果你在引用的JS文件中写上这个函数,那么这个文件中的函数可以定义文件里面的变量,去一齐使用,而外部的JS文件就算定义上相同名字的变量也不会受到影响。

JS文件代码:

(function() {   
    var foo = 10;   
    var bar = 2;   
    baz = function() {    
     return foo * bar;    
 };
 alert("a");   
})();


调用的代码:

alert(baz());