gpt4 book ai didi

多个页面元素的javascript worker

转载 作者:行者123 更新时间:2023-11-29 22:20:02 25 4
gpt4 key购买 nike

假设我有一个 javascript 库(.js 文件),它可以在页面上的 div 元素上绘制 SVG 图形。该库应用业务逻辑,还为单击元素等创建事件处理程序。伪代码可能如下所示:

myLib = {};
myLib.dummy = null;
mylib.doStuff = function(divID) {
//divID is the ID of the element on which SVG graph will be drawn
//does graph drawing and sets up myLib.dummy for feedback or such, e.g.:
myLib.dummy = $("#divID").width();
}

我的问题是:如果我想将此脚本应用于同一页面上的 2 个(或更多)元素,然后将 myLib 的“实例”与每个元素相关,我该如何处理。我知道我不能从页面中这样调用它:

myLib.doStuff('topDiv');   //myLib.dummy will be say 400;
myLib.doStuff('bottomDiv'); //myLib.dummy will be say 600;

使用上面的代码,我将无法再访问属于 ID = 'topDiv' 的 div 的 myLib.dummy,因为它们使用相同的命名空间。

我怀疑我遗漏了一种设计模式,或者答案可能只是命名空间的一个例子。

如果有任何建议或帮助,我将不胜感激。

最佳答案

function makeALib() {
var myLib = {};
myLib.dummy = null;
mylib.doStuff = function(divID) {
//divID is the ID of the element on which SVG graph will be drawn
//does graph drawing and sets up myLib.dummy for feedback or such, e.g.:
myLib.dummy = $("#divID").width();
}
return myLib;
}

var libA = makeALib();
var libB = makeALib();

libA.doStuff('topDiv');
libB.doStuff('bottomDiv');

您可以在许多不同的领域引入分离或间接。在不了解您的使用上下文的情况下,很难说什么是好的选择。但以上只是众多工作选择之一。

关于多个页面元素的javascript worker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12945999/

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