js函數常見的寫法以及調用方法


寫在前面:本文詳細的介紹了5中js函數常見的寫法以及調用的方法,平時看別人代碼的時候總是看到各種不同風格的js函數的寫法。不明不白的,找了點資料,做了個總結,需要的小伙伴可以看看,做個參考。
1.常規寫法(最常見的那種)


  
  
  
          
  1. //函數的寫法
  2. function run () {
  3. alert('常規寫法');//這里是你函數的內容
  4. }
  5. // 調用
  6. run();

2.匿名函數寫法(可以想成給變量賦值一個函數)


  
  
  
          
  1. // 匿名函數的寫法
  2. var run = function(){
  3. alert('這是一種聲明函數的方式,左邊是一個變量,右邊是一個函數的表達式,意思就是把一個匿名的函數表達式賦值給了變量myfun,只是聲明了一個變量指向了一個函數對象。');//這里是你函數的內容
  4. }
  5. // 調用
  6. run();

3.將方法作為一個對象


  
  
  
          
  1.  // 作為對象方法,函數寫法,這里創建了兩個函數外面用{}包裹起來
  2. var Test = {
  3. run1:function(){
  4. alert('這個必須放在一個對象內部,放在外邊會出錯!');//這里是你函數的內容
  5. }
  6. ,run2:function(){
  7. alert('這個必須放在一個對象內部,放在外邊會出錯!');//這里是你函數的內容
  8. }
  9. }
  10. //調用
  11. Test.run1();//調用第1個函數
  12. Test.run2();//調用第2個函數

4.構造函數中給對象添加方法 
javascript中的每個對象都有prototype屬性,Javascript中對象的prototype屬性的解釋是:返回對象類型原型的引用。


  
  
  
          
  1. // 給對象添加方法
  2. var funName = function(){};
  3. funName.prototype.way = function(){
  4. alert('這是在funName函數上的原始對象上加了一個way方法,構造函數中用到');
  5. }
  6. // 調用
  7. var funname = new text();// 創建對象
  8. funname.way();//調用對象屬性

5.自執行函數
js自執行函數查到了幾種不同寫法,放上來給大家看看


  
  
  
          
  1. //方法1:最前最后加括號
  2. (
  3. function(){alert(1);}()
  4. );
  5. /*這是jslint推薦的寫法,好處是,能提醒閱讀代碼的人,這段代碼是一個整體。
  6. 例如,在有語法高亮匹配功能的編輯器里,光標在第一個左括號后時,最后一個右括號也會高亮,看代碼的人一眼就可以看到這個整體。 */

  
  
  
          
  1. //方法2:function外面加括號
  2. (function(){alert(1);})();
  3. //這種做法比方法1少了一個代碼整體性的好處。

  
  
  
          
  1. //方法3:function前面加運算符,常見的是!與void 。
  2. !function(){alert(1);}();
  3. void function(){alert(2);}();
  4. /*顯然,加上“!”或“+”等運算符,寫起來是最簡單的。
  5. 加上“void ”要敲五下鍵盤,但是聽說有一個好處是,比加"!"少一次邏輯運算。----我只是聽說,不明所以。*/

以上。
參考:1.http://www.jb51.net/article/31078.htm
2.http://www.cnblogs.com/Imever/p/4777985.html
希望看完的朋友點個喜歡,想關注我這個菜雞是如何成長的也可以關注一下我,基本上每個月都不會少於十五篇文章(看到干貨我也會進行分享)。然后github也互相加個star。碼字不易,感謝支持,感激不盡!
ps:如果希望我寫哪方面的文章可以在底下評論,或者是私信我,雖然寫的不好,但我就當這是記錄自己成長的一種方式咯。(前提是我會了,如果不會我也會記下來,等會了的時候再更出來。),


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM