如何在 JavaScript 函式中傳遞物件作為引數?


在本教程中,我們將學習如何在 JavaScript 函式 中傳遞物件作為引數。

JavaScript 的資料型別之一由 物件型別 表示。它用於儲存鍵控集合以及更復雜的實體。可以使用 Object() 函式 Object()或物件初始化器/字面量語法來建立物件。

幾乎所有 JavaScript 物件都是 Object 的例項;一個典型的物件繼承了來自 Object.prototype 的屬性(包括方法),儘管這些屬性可能會被隱藏(又稱覆蓋)。

以下是用於在 JavaScript 函式中傳遞物件作為引數的方法。

使用字面量物件表示法

這非常簡單。您只需將用 ':' 分隔的鍵值對放在一對花括號() 內,您的物件就可以準備就緒(或被使用)。

我們可以將物件傳遞給 JavaScript 函式,但引數必須與物件屬性名稱相同。

語法

function areaOfRectangle({ l,b }) {
   return l * b;
}
let rectangle = {
   l: 22,
   b: 10
};
areaOfRectangle(rectangle);

矩形物件接收矩形長度和寬度的輸入,當此物件作為引數傳遞給 areaofRectangle() 函式時,將計算其面積。

示例

在本例中,rectangle 物件是使用字面量表示法物件建立的。矩形的長度和寬度被傳遞到此物件中。我們建立 areaOfRectangle() 函式來計算矩形的面積。呼叫此函式,並將矩形物件傳遞給它。

<html> <body> <p id="result"></p> <script> let output = document.getElementById("result"); // define a function function areaOfRectangle({l, b}) { return (l * b); } // define an object let rectangle = {l: 77, b: 21 }; // Call the function passing the object to fucntion as parameter. let area = areaOfRectangle(rectangle); output.innerHTML = "Area of rectangle : " + area + "<br>"; </script> </body> </html>

使用 this 和原型

與其他語言相比,JavaScript 函式中的“this”關鍵字的行為略有不同。它還區分嚴格模式和非嚴格模式。

此值通常由函式的呼叫方式(執行時繫結)確定。它不能在執行期間設定,並且每次呼叫函式時都可能不同。bind() 方法可以更改函式的 this 值,無論它是如何被呼叫的,並且箭頭函式沒有自己的繫結(它保留封閉詞法上下文的 this 值)。

JavaScript 物件透過使用原型相互繼承特性。本文將解釋原型、原型鏈的工作原理以及如何為物件設定原型。

語法

var func = function(param1) {
   this.param1 = param1;
};
func.prototype.display = function() {
   return this.param1;
};

函式 func() 接收一個引數 param,該引數傳遞給 display 函式以顯示其值。

示例

在示例中,我們在變數 res 中建立了一個物件。此變數使用引數 11.98 呼叫函式 func()。要建立物件,請將 new 關鍵字與 Object() 函式 Object() 結合使用,然後向此物件新增屬性。此函式將引數作為物件傳遞,並幫助使用 display() 函式顯示它。

<html> <body> <script> var func = function(param1) { this.param1 = param1; }; func.prototype.display = function() { return this.param1; }; function display(val) { document.write(val()); } var res = new func(11.98); display(res.display.bind(res)); </script> </body> </html>

在本教程中,我們學習了兩種在 JavaScript 函式中傳遞物件作為引數的技術。第一種技術是使用一個物件,其引數必須與物件屬性名稱相同。第二種技術是使用“this”函式和原型方法。

更新於: 2023年9月13日

32K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.