1. function sendMessage(msg,obj){ 
  2.    if(arguments.length==2) 
  3.      obj.handleMsg(msg); 
  4.    else 
  5.      alert(msg); 
  6.         
  7. sendMessage("hello,world"); 
  8. sendMessage("how are you?",{ 
  9.    handleMsg:function(msg){ 
  10.       alert("this is a custom message:"+msg); 
  11.    } 
  12. }); 

 可以说是函数的重载吧,arguments可以判断你传入参数的个数。然后依次做你判断,当初我还用到这个功能既然用的是自我判断的。这个就很方便了

 

   
   
   
   
  1. var t="ddd"
  2. if(t.constructor==String){ 
  3.   alert("ok"); 
  4.    if(typeof t=="string"){ 
  5.       alert("ok"); 
  6.    }   

判断对象的类型:除了用typeof 之外还可以用constructor来做判断,只不过是比较的值不同!

 

javascript 学习_第1张图片

运用构造函数来判断,最不容易犯错了。推荐

 

javascript 中的作用域scope的确很烦人

 

   
   
   
   
  1. var foo="test"
  2. if(true){ 
  3.    alert(foo); 
  4.   var foo="new test"
  5. alert(foo); 
  6. function test(){ 
  7.   alert(foo); 
  8.   var foo="old test"
  9.   alert(foo); 
  10. test(); 
  11. alert(window.foo); 

作用域的理解有的无奈

 

闭包,这个神奇的东西,还没发现好处:

暂时勉强有一个了

是代码清晰:

   
   
   
   
  1. function delaydeAlert(msg,time){ 
  2.   setTimeout(function(){alert(msg);},time); 
  3. delaydeAlert("welcome",2000); 

在解决为了防止多的全局变量时,我们其实已经运用了闭包的思想,比如我们定义的(function(){

......

})();

里边所写的内容就是闭包的范畴了。他算是一个匿名函数而已,在其中定义的变量也属于局部变量

当然了闭包这个东西确实好处还没有摸透,以后熟悉了再补。。。