如何將 JavaScript 函式用作物件?
本教程將教會我們如何將 JavaScript 函式用作**物件**。但是,**函式**、**物件**和**陣列**是 JavaScript 中的可變資料型別,所有可變資料型別都是物件。
**JavaScript 物件**是一種包含鍵值對的實體。它包含唯一的鍵;每個鍵都有一些值,這些值可以是任何型別。我們可以使用物件鍵來訪問物件的值。
我們可以建立一個函式,使其表現得像一個物件。下面,我們詳細解釋瞭如何將函式轉換為物件。
將 JavaScript 函式用作物件
在本節中,我們將學習一些基本知識,使函式在 JavaScript 中能夠像物件一樣工作。我們可以在函式內部定義變數並初始化鍵變數的值。要建立新物件,我們將透過在函式內部傳遞所需的實參來建立物件的例項,以初始化鍵值。
語法
使用者可以按照以下語法將函式用作物件。
普通物件的語法。
let object = { key : value; // other key and values }
將函式用作物件的語法。
function funcObject() { this.key1 = "hello"; this.key2 = "world"; } Var object = new funcObject(); let value = object.key1; // accessing the object key values
引數
**this** - 它是 JavaScript 中的保留關鍵字。此關鍵字指的是當前例項的變數、物件或方法。這意味著,如果我們在函式或塊內部使用此關鍵字,它僅指該塊的變數。如果我們在程式碼中全域性使用此關鍵字,它將指全域性變數。
示例
在下面的示例中,我們建立了一個單一函式。我們將建立函式的例項並將其用作物件。之後,使用函式的物件,我們將訪問函式的變數,就像我們使用鍵訪問普通物件的值一樣。
<html> <head> <title> JavaScript User defined object </title> </head> <body> <h2> JavaScript function as an object </h2> <p> Values of the object, after using function as an object. </p> <div id="value"> </div> <script> function funcObject() { this.name = " tutorialsPoint "; this.site = " tutorialsPoint.com "; this.info = " A computer science portal " } // Creating the instance of the function to use it as an object. let newObject = new funcObject(); let values = document.getElementById("value"); values.innerHTML = " name: " + newObject.name + ". <br/>"; values.innerHTML += "site: " + newObject.site + ". <br/>"; values.innerHTML += "info: " + newObject.info + ". <br/>"; </script> </body> </html>
在上面的示例中,函式的工作方式與物件相同。我們像訪問物件鍵的值一樣訪問了函式變數,並在螢幕上列印了上述輸出。
在函式內部新增引數和方法
在本節中,我們將向函式新增引數。使用函式的引數,我們可以透過引數初始化物件的鍵。當我們使用“new”關鍵字建立新物件時,我們將向物件的例項傳遞實參。
與建立普通物件相比,將函式用作物件具有更多優勢。當我們將引數化函式用作物件時,我們可以透過將鍵的值作為實參傳遞來建立具有不同值的新物件。如果我們使用普通物件,則需要為每個鍵重新初始化值。
語法
使用者可以按照以下語法在用作物件的函式內部宣告方法。
function funcObject(param1, param2) { this.key1 = param1; this.key2 = param2; this.method = function () { // code for current method } } // object of the function with arguments let newObject = new funcObject( "hello", "world" ); newObject.method(); // invoking the method of the object
示例 2
在下面的示例中,我們建立了帶引數的函式。此外,該函式包含已分配給變數的方法。我們建立了匿名方法以將其分配給變數。之後,我們透過傳遞實參,使用函式建立了物件的例項。
<html> <body> <h2> Use Javascript function as an object. </h2> <p> Create method inside the function, initialize value of the function variable, and use it as an object. </p> <div id="value"> </div> <script> function funcObject( param1, param2 ) { this.key1 = param1; this.key2 = param2; this.method = function () { return " The sum of 10 + 30 is " + ( 10 + 30 ); } } // Creating the instance of the function to use it as an object. let newObject = new funcObject("hello", "world"); let values = document.getElementById("value"); values.innerHTML = " key1: " + newObject.key1 + " <br/>"; values.innerHTML += " key2: " + newObject.key2 + " <br/>"; values.innerHTML += " return value from method: " + newObject.method() + " <br/>"; </script> </body> </html>
結論
我們學習瞭如何將函式用作物件。在這裡,this 關鍵字在建立當前函式的變數中起著重要作用。當使用使用者定義的物件時,最好使用多個值來管理物件。此外,我們可以傳遞值來初始化鍵,並只需一行程式碼即可建立新物件。