gpt4 book ai didi

javascript - 在 JavaScript 中实现单例的最简单/最干净的方法

转载 作者:IT老高 更新时间:2023-10-28 13:11:33 28 4
gpt4 key购买 nike

实现 singleton pattern 的最简单/最干净的方法是什么?在 JavaScript 中?

最佳答案

我认为最简单的方法是声明一个简单的对象字面量:

var myInstance = {
method1: function () {
// ...
},
method2: function () {
// ...
}
};

如果你想在你的单例实例上使用私有(private)成员,你可以这样做:

var myInstance = (function() {
var privateVar = '';

function privateMethod () {
// ...
}

return { // public interface
publicMethod1: function () {
// All private members are accessible here
},
publicMethod2: function () {
}
};
})();

这被称为 module pattern ,它基本上允许您通过使用 closures 将私有(private)成员封装在对象上。 .

如果你想阻止修改单例对象,你可以卡住它,使用 ES5 Object.freeze方法。

这将使对象不可变,防止对其结构和值进行任何修改。

如果你使用 ES6,你可以很容易地使用 ES Modules 来表示一个单例,你甚至可以通过在 module 中声明变量来保持 私有(private)状态范围:

// my-singleton.js
const somePrivateState = []

function privateFn () {
// ...
}

export default {
method1() {
// ...
},
method2() {
// ...
}
}

然后你可以简单地导入单例对象来使用它:

import myInstance from './my-singleton.js'
// ...

关于javascript - 在 JavaScript 中实现单例的最简单/最干净的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1479319/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com