首頁  >  文章  >  web前端  >  JavaScript之Function和function簡單區分

JavaScript之Function和function簡單區分

高洛峰
高洛峰原創
2016-11-25 11:17:271216瀏覽

Js程式碼  
var a = new Function("document.write(a)");   
  
var b = function(){document.write(b); );  
}  
  
a();  
b();  
c();  
 執行後結果為使用:abc
) 的兩個定義項一個被賦予了函數體的函數。
對第一種方式,在查詢了若干資料後做一個小結。

Function 是Javascript的?戎枚韻螅??unction(注意大小寫)就是從它派生出來的,Function是一種引用類型(Functions are, of course, reference types.)。個人推測類似第2種匿名函數的引用。
Function實例建構方式:
var instanceName = new Function([arg1 [, arg2 [, ...]] ,] body); 

前幾項為參數,最後為函數體,如:

Js代碼  
var myAdd = new Function("x", "y", "return x + y");  
var sum = myAdd(17, 34);  

執行後sum的值為51。

Function()建構子允許我們動態地建立和編譯一個函數,它不會將我們限制在function語句預編譯的函數體中。這樣做帶來的負面影響效應就是每次呼叫函數時,Function()建構子都要對它進行編譯。因此,在循環體中或在經常使用的函數中,我們不應該頻繁地呼叫這個構造函數。

匿名函數與Function()建構函式用法相似;不同的是匿名函式在使用時只會被解析一次,而作為字串傳遞給Function()建構函式的 JavaScript程式碼則在每次呼叫建構函式時都要被解析和編譯一次。

還有一點值得注意的是,變數的作用域,Function()建構子變數作用域是全域的。

例如:

Js代碼  

var y="global";  
function constructFunction()  
{  
    var y="local";作用域。  
    fun();  
}  
constructFunction(); 



陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn