值通過引用傳遞。在 javascript 單例模式中傳遞值:1. 在構(gòu)造函數(shù)中傳遞值。2. 在公開方法中存儲值。3. 在需要時檢索值。
JavaScript 單例模式中的值傳遞
在 JavaScript 中,單例模式是一種設計模式,它確保只有一個類的實例被創(chuàng)建和使用。通過創(chuàng)建一個私有變量來存儲實例,并提供一個公開方法來檢索實例,可以實現(xiàn)單例模式。
值傳遞
在 JavaScript 中,值通過引用傳遞。這意味著傳遞給函數(shù)或?qū)ο蟮淖兞康膶嶋H值不會被復制,而是其存儲位置的引用會被傳遞。
如何在單例模式中傳遞值
要將值傳遞給單例模式中的實例,可以使用以下步驟:
-
在創(chuàng)建實例時,將值作為參數(shù)傳遞給構(gòu)造函數(shù)。
在公開方法中,將傳遞的值存儲在一個私有變量中。
當需要使用該值時,從私有變量中檢索它。
示例
下面是一個 JavaScript 單例模式的示例,它演示了如何傳遞值:
const Singleton = (function () { let instance; function createInstance(value) { if (!instance) { instance = { value: value }; } return instance; } return { getInstance: function (value) { return createInstance(value); } }; })(); const instance1 = Singleton.getInstance(10); console.log(instance1.value); // 10 const instance2 = Singleton.getInstance(20); console.log(instance2.value); // 10
登錄后復制
注意:
在此示例中,value 參數(shù)在 createInstance 函數(shù)中存儲在一個私有變量中,并可以通過 instance.value 訪問。
getInstance 方法返回單例的實例,該實例包含傳遞給構(gòu)造函數(shù)的值。
instance1 和 instance2 引用相同的單例實例,因此它們都具有相同的值(10),即使在創(chuàng)建 instance2 時傳遞了不同的值。這是因為 JavaScript 值通過引用傳遞。