JS中建立函式的三種方式及區別

2021-09-10 18:45:55 字數 838 閱讀 2966

1.函式宣告

function sum1(n1,n2);
2.函式表示式,又叫函式字面量

var sum2=function(n1,n2);
兩者的區別:解析器會先讀取函式宣告,並使其在執行任何**之前可以訪問;而函式表示式則必須等到解析器執行到它所在的**行才會真正被解釋執行。

自執行函式嚴格來說也叫函式表示式,它主要用於建立乙個新的作用域,在此作用域內宣告的變數,不會和其它作用域內的變數衝突或混淆,大多是以匿名函式方式存在,且立即自動執行。

(function(n1,n2))(1,3);//4
3.函式構造法,引數必須加引號

var sum3=new function('n1','n2','return n1+n2');

console.log(sum3(2,3));//5

從技術角度講,這是乙個函式表示式。一般不推薦用這種方法定義函式,因為這種語法會導致解析兩次**(第一次是解析常規ecmascript**,第二次是解析傳入建構函式中的字串),從而影響效能。

var name='haoxl';

function fun()

console.log(fun()());//haoxl

function()建構函式每次執行時都會解析函式主體,並建立乙個新的函式物件,所以當在乙個迴圈或頻繁執行的函式中呼叫function()建構函式效率是非常低的。而函式字面量卻不是每次遇到都會重新編譯的,用function()建構函式建立乙個函式時並不遵循典型的作用域,它一直把它當作是頂級函式來執行。

JavaScript中建立函式的三種方式

1.使用function關鍵字申明命名函式 function add 2.使用直接量的方式命名函式 var add function 3.使用function物件構造方法建立函式 var add new function 三種對比優缺點 僅以申明方式定義的方法,會被申明提前 以申明方式和直接量的方式...

JS建立物件的三種方式

物件是自包含的資料集合,包含在物件裡的資料可以通過兩種形式訪問 屬性和方法 屬性是隸屬於某個特定物件的變數 方法是只有某個特定物件才能呼叫的函式 物件就是有一些屬性和方法組合在一起而構成的乙個資料實體 字面量方式建立物件 字面量建立可以說作用類似於關聯陣列的,關聯陣列在ajax裡面是非常常用的乙個方...

JS建立元素的三種方式

1.innerhtml element.innerhtml 標籤字串 2.docuement.write document.write 標籤字串 3.document.createelement document.createelement 標籤名 三者區別 innerhtml 會覆蓋原來元素裡面的...