在javascript中,函數(Function)是一段被封裝好的程式碼,可以重複使用(呼叫);函數可以是一個值、一個物件、一類數據,還可以是一個表達式,因此函數可以賦值、可以運算、可以擁有屬性和方法,甚至可以暫時儲存值、建構實例等。
本教學操作環境: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中文網其他相關文章!