javascript 學習

  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來做判斷,只不過是比較的值不同!

 

object類型

運用構造函數來判斷,最不容易犯錯了。推薦

 

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(){

......

})();

裏邊所寫的內容就是閉包的範疇了。他算是一個匿名函數而已,在其中定義的變量也屬於局部變量

當然了閉包這個東西確實好處還沒有摸透,以後熟悉了再補。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章