Js函數的三種建立、四種調用

來源:互聯網
上載者:User

標籤:log   fun   數組   方法   執行環境   function   建立   pre   參數   

 1 // 函數的三種建立方法 2 function one(){   // 函式宣告,不屬於任何對象,始終預設為全域對象 3 console.log("第一個函數") 4 //預設有一個return this,返回函數中的內容 5 } 6 one();      //必須調用;可以在函式宣告前調用(預先處理變異機制)                        7  8 var fn=function(){                  //函數運算式 9 console.log("第二個函數")10 }11 fn(); //必須先聲明再調用                                 12 13 var fun=new Function(console.log("第三個函數")); //建構函式 無需調用,會自調
 1 // 函數的4種調用方式 2 function one(){                      3 console.log("一個函數") 4 } 5 one();  //作為一個函數去調用 6  7  8 var person={ 9 name:"tom",10 age:18,11 speak:function(){12 console.log("English")13 }14 }                   15 person.speak(); //函數作為對象的方法的調用16 17 18 function num(n1,n2){19 this.number1=n1;20 this.number2=n2;// 建構函式中的this沒有任何值21 }22 23  var i=new num(3,5);24  console.log(i.number1) // 建構函式會建立一個新的對象,新的對象會繼承建構函式的屬性和方法25 26 27  function myFunction(a,b){28  return a+b;29  }30  myFunction.call(this,2,5);31 32  var myArry=[2,5];33  myFunction.apply(this,myArry); //作為函數方法調用函數 call()和apply()是預定義的函數方法,apply傳入的是一個數組,call傳入的是參數

js的運行機制問題:(聲明提升) 
1、在js中js引擎會優先解析var變數和function定義!在預解析完成後從上到下逐步進行! 
2、解析var變數時,會把值儲存在“執行環境”中,而不會去賦值,值是儲存作用!例如: 
alert(a); var a = 2; 這時會輸出undifiend,意思是沒有被初始化沒有被賦值! 
這並不是沒有被定義,錯誤了的意思! 
3、在解析function時會把函數整體定義,這也就解釋了為什麼在function定義函數時為什麼可以先調用後聲明了!其實表面上看是先調用了,其實在內部機制中第一步實行的是把以function方式定義的函數先聲明了(預先處理)

Js函數的三種建立、四種調用

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

Tags Index: