gpt4 book ai didi

javascript - 无法将 obj 实例化到文件中并在另一个文件中使用它

转载 作者:行者123 更新时间:2023-11-30 20:31:40 26 4
gpt4 key购买 nike

我正在尝试实现单例模式,以便在一个文件中实例化一个对象并在另一个文件中重用相同的实例。很明显,我不理解一些基本的东西。有什么方向可以更好地理解吗?

let editorDiv = document.createElement('div');
editorDiv.setAttribute('id','editor');
document.body.appendChild(editorDiv);

//a.js
function singleton(){
let _singleton;
let quillOptions = { modules: { toolbar: true },
placeholder: 'Compose an epic...',
theme: 'snow'
}
if (!_singleton) {
_singleton = new Quill('#editor', quillOptions)
}

return _singleton;
}

//b.js
//instantiate
let quill = singleton();

//c.js
//get instance in order to use api
let quillInstace = singleton();
//Ex: quillInstance.getText();
<link href="https://cdn.quilljs.com/1.3.6/quill.snow.css" rel="stylesheet">
<script src="https://cdn.quilljs.com/1.3.6/quill.js"></script>

最佳答案

这里的问题是您的 _singleton 缓存变量在您的 singleton() 方法内,这意味着每次调用它时,它都是空的。

你应该以不同的方式存储它:

//a.js
//this is now a global var for this file
let _singleton;

function singleton(){
let quillOptions = { modules: { toolbar: true },
placeholder: 'Compose an epic...',
theme: 'snow'
}
if (!_singleton) {
_singleton = new Quill('#editor', quillOptions)
}

return _singleton;
}

或使用少数 lodash memoize method这对你有用 =)

关于javascript - 无法将 obj 实例化到文件中并在另一个文件中使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50277488/

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