1. 程式人生 > >JavaScript中的函式表示式

JavaScript中的函式表示式

函式表示式

定義函式有兩種方式:一種是函式宣告,一種是函式表示式。
函式宣告的語法:

function functionName(arg0,arg1,arg2){
    //do something
}

函式宣告有個重要特徵就是函式提升,在執行程式碼之前會先讀取函式宣告,這意味著可以把函式宣告放在呼叫它的語句後面。
函式表示式的語法:

var functionName = function(arg0,arg1,arg2){
    //do something  
};

遞迴

遞迴是一個函式通過名字呼叫自身的情況。例如:

function factorial(num){
    if
(num <= 1){ return 1; }else{ return num*factorial(num-1); } }

模仿塊級作用域

JavaScript沒有塊級作用域的概念,這意味著塊語句中定義的變數,實際上是在包含函式中而非語句中建立的,例如:

function outputNumbers(count){
    for(var i=0; i<count; i++){
        alert(i);
    }
    alert(i);
}

可以使用匿名函式來模仿塊級作用域,匿名函式的語法:

function
(){
//這裡是塊級作用域 })();

私有變數

任何函式中定義的變數,都可以認為是私有變數,因為不能在函式外部訪問這些變數,私有變數包括函式的引數、區域性變數和函式內部定義的其他函式。
我們把有權訪問私有變數和私有函式的公有方法稱為特權方法,有兩種在物件上建立特權方法的方式。
第一種,在建構函式中定義特權方法

function MyObject(){
    var privateVariable = 10;

    function privateFunction(){
        return false;
    }

    this.publicMethod = function
(){
//特權方法 privateVariable++; return privateFunction(); }; }

第二種,通過在私有作用域中定義私有變數或函式

(function(){
    var privateVariable = 10;
    function privateFunction(){
        return false;
    }

    MyObject = function(){};                    //全域性變數
    MyObject.prototype.publicMethod = function(){
        privateVariable++;
        return privateFunction();
    };
})();

相關推薦

javascript函式宣告和函式表示式的區別

1.js中函式表示式的定義 表示式(expression)JavaScript中的一個短語,javascript會將其計算(evaluate)出一個結果。程式中的常量是一個最簡單的表示式。變數名

JavaScript函式宣告與函式表示式區別

眾所周知,JavaScript中宣告函式可以用函式宣告形式,也可以用函式表示式形式。本文介紹一下兩者區別。 函式宣告: alert(sum(10,10)); function sum(num1,num2){ return num1 +num2; } 以上程式碼

Javascript 函式宣告、函式表示式、匿名函式的寫法

javascript和其他程式語言相比比較隨意,所以javascript程式碼中充滿各種奇葩的寫法,有時霧裡看花,當然,能理解各型各色的寫法也是對javascript語言特性更進一步的深入理解。 ( function(){…} )()和( function (){…}

JavaScript函式的相關操作

下面簡要總結JavaScript中關於函式的相關內容: 1.函式 函式即函式物件。一般有return語句,若無,預設返回undefined。 2.函式建立方式:函式宣告和函式表示式。函式宣告會被前置,無論在指令碼哪個位置,都會提前處理,任何位置處呼叫都可。而函式表示式則相反,能否成功呼叫

揭祕JavaScript命名函式表示式

本文將從原理和實踐兩個方面來探討javaScript關於命名函式表示式的優缺點。 簡單的說,命名函式表示式只有一個使用者,那就是在Debug或者Profiler分析的時候來描述函式的名稱,也可以使用函式名實現遞迴,但很快你就會發現其實是不切實際的。當然,如果你不關注除錯,那就沒什麼可擔心的了

探索javascript函式的執行順序

  先來第一段測試程式碼,如下所示: 測試程式碼一: [javascript] view plain copy <script language="JavaScript"> &

測試javascript函式有return關鍵字

測試javascript中函式中有return關鍵字 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>測試javascript中函式中有return關鍵字<

javascript基礎——函式表示式

函式宣告與函式表示式的區別: 函式宣告提升:就是使用函式宣告時,函式會被解析器先讀取,以供執行環境使用,所以函式宣告的位置可以在函式呼叫的後面 函式表示式則不可以在函式呼叫的前面,必須先定義函式表示式,才可以呼叫,不然瀏覽器會報錯。 函式表示式: var sayHi

JavaScript函式和方法

在一個物件中繫結函式,稱為這個物件的方法。在JavaScript中,物件的定義是這樣的 var xiaoming = { name: '小明', birth: 1990 }; 但是,如果我們給xiaoming繫結一個函式,就可以做更多的事情。比如,寫個age()方法,返回xiaomi

javascript函式的call和apply

兩個方法需要的引數如下: call(作用域,引數1,引數2,引數3,…) apply(作用域,[引數1,引數2,引數3,…]) function sayName(){ var name = this.name; console.log(name); } va

javascript函式、物件、原型鏈等的深入自我理解

js中以物件為核心,所有皆物件。 狹義的講,js中的物件比較純粹,就是一個大括號包裹的鍵值對,鍵為名(有待深入解析,可能就是語法本身),值為物件。 這個基本要素和C++比較接近,並沒有憑空創造出新的語法來完成這個物件(類)的構造過程。 函式本身是物件,可以作為物件中的值

javascript函式的分類

前段寫js程式碼的時候經常會碰到“長得特別的” function ,現在在此做下總結: 函式分類: 普通函式 匿名函式 閉包函式 普通函式 1.1 簡單示例 function test(){ console.log("簡

【慕課網】JavaScript函式和this

1.函式概述 JS中函式比較特殊,函式也是物件中的一種。常叫做函式物件。 所以JS函式可以像其它物件那樣操作和傳遞,所以我們也常叫JS中的函式為函式物件。 函式的返回值依賴return,一般的函式呼叫:沒有return就會預設在所有程式碼執行完返回一個undefined; 如

javaScript函式的自執行與閉包的格式及作用

(function(){ console.log('小黃人'); })();   (function(){   console.log('小綠人'); }());   自執行作用:   1.做程式碼的封裝   2.用來控制變數的作用域 閉包:在函式內部,return一

JavaScript函式閉包的應用

1. 事件閉包的理解:閉包是指有許可權訪問另一個函式作用域中的變數的函式.在 javascript 語言中,閉包就是函式和該函式作用域的組合.在JavaScript中任何一個函式都是一個閉包,但是巢狀的函式功能更強(閉包的作用更加強大,產生一個作用域鏈) 2.變數的作用域:要理解閉包,首先必

前端筆記42——JavaScript函式

函式 函式的定義是:一段具有一定功能的程式碼塊。 舉個栗子 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title>

JavaScript函式的三種定義方法

JavaScript中函式定義的三種方法。 函式的三種定義方法分別是:函式定義語句、函式直接量表達式和Function()建構函式的方法。下面依次介紹這幾種方法具體怎麼實現。 1. 函式定義語句 //求和函式 function sum(a,b){ return a+b;

JavaScript函式,引數,全域性變數

1. 函式的概念 函式就是重複執行的程式碼片。或者說函式是由事件驅動的或者當它被呼叫時執行的可重複使用的程式碼塊。 2. JavaScript 中的函式語法結構 使用關鍵字 function 定義一個函式 Function 函式的名稱(){ 函式的主體 } 說明: 定

javascript 函式體裡 return返回值 與 引數傳參 的區別

javascript 函式體內的return返回值的簡單應用: <!DOCTYPE html> <html> <head> <me

Javascript函式表示式

定義函式: 函式宣告: function functionName(arg0, arg1, ... ){ // 函式體 } // name屬性訪問函式名 函式宣告提升:執行程式碼之前會先讀取函式宣告。所以即便函式宣告在呼叫函式程式碼之後,也不會