首頁  >  文章  >  web前端  >  javascript中什麼是函數

javascript中什麼是函數

青灯夜游
青灯夜游原創
2021-07-19 17:03:213379瀏覽

在javascript中,函數(Function)是一段被封裝好的程式碼,可以重複使用(呼叫);函數可以是一個值、一個物件、一類數據,還可以是一個表達式,因此函數可以賦值、可以運算、可以擁有屬性和方法,甚至可以暫時儲存值、建構實例等。

javascript中什麼是函數

本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

在JavaScript 中,物件是一個泛化的概念,任何值都可以轉換為對象,以對象的方式進行使用,如數字對象、布林值對象、字串對象、型別對象、函數對象、陣列對像等,它們都繼承Object 類型對象,擁有共同的基本屬性和方法。此外,JavaScript 也允許自訂物件。

從狹義的概念來分析,物件(Object)是最基本的資料類型,是複合型的結構、引用型的數據,它是無序資料集合,物件中每個成員稱為屬性。

JavaScript 是基於對象,但不完全物件導向的程式語言。在 JS 物件導向的程式模式中,有兩個核心概念: 物件和類別。在 ECMAScript6 規範之前,JavaScript 沒有類別的概念,僅允許透過建構函數來模擬類別,透過原型實現繼承。

JS建立物件

建構物件

使用new 運算子呼叫建構函數,可以建構一個實例物件。具體用法如下:

var objectName = new functionName(args);

參數說明如下:

  • objectName:傳回的實例物件。

  • functionName:建構函數,基本上與普通函數相同,但不需要 return 傳回值,傳回實例對象,在函數內可以使用 this 預先存取。

  • args:實例物件初始化配置參數清單。

範例

下面範例使用不同類型的建構子定義各種實例。

var o = new Object();  //定义一个空对象
var a = new Array();  //定义一个空数组
var f = new Function();  //定义一个空函数

物件直接量

使用直接量可以快速建立對象,也是最有效率、最簡單的方法。具體用法如下:

var objectName = {
    属性名1 : 属性值1,
    属性名2 : 属性值2,
    ...
    属性名n : 属性值n
};

在物件直接量中,屬性名稱與屬性值之間透過冒號進行分隔,屬性值可以是任意類型的數據,屬性名稱可以是JavaScript 標識符,或是字串型表達式。屬性於屬性之間透過逗號分隔,最後一個屬性結尾不需要逗號。

範例

下面程式碼使用物件直接量定義兩個物件。

var o = {  //对象直接量
    a : 1,  //定义属性
    b : true  //定义属性
}
var o1 = {  //对象直接量
    "a" : 1,  //定义属性
    "b" : true  //定义属性
}

JavaScript 建構子

JavaScript 建構子(Constructor)也稱為建構子、型別函數,函式類似物件模板,一個建構函數可以產生任意多個實例,實例物件具有相同的屬性、行為特徵,但不相等。

定義建構子

在文法和用法上,建構函式與普通函式沒有任何差別。定義建構函數的方法如下:

function 类型名称 (配置参数) {
    this.属性1 = 属性值1;
    this.属性2 = 属性值2;
    ...
    this.方法1 = function () {
        //处理代码
    };
    ...
    //其他代码,可以包含return语句
}

建議建構子的名稱首字母大寫,以便與普通函數進行區分。

建構子有兩個顯著特點。

  • 函數體內使用 this,引用將要產生的實例物件。

  • 必要使用 new 指令呼叫函數,產生實例物件。

範例

下面範例示範定義一個建構函數,包含了兩個屬性和一個方法。

function Point (x, y) {  //构造函数
    this.x = x;  //私有属性
    this.y = y;  //私有属性
    this.sum = function () {  //方法
        return this.x + this.y;
    }
}
在上面代

碼中,Point 就是建構函數,它提供模板,用來產生實例物件。

【推薦學習:javascript進階教學

以上是javascript中什麼是函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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