gpt4 book ai didi

javascript - 如何使用 requireJS 访问模块变量?

转载 作者:可可西里 更新时间:2023-11-01 02:41:24 24 4
gpt4 key购买 nike

我已经使用 Javascript 一段时间了,我只是第一次尝试使用模块和 requireJS,很难理解新的设计模式!

这是我的第一次尝试:

require([
"jquery",
"testModule"
], function ($, testModule) {
$(function () {
var testInstance1 = testModule;
testInstance1.setID(11);
alert(testInstance1.id);
});
});

和 testModule.js

define([
'jquery'
], function ($) {

var id = 0;

var setID = function (newID) {
id = newID;
return id;
};
return {
setID: setID,
id:id
};
});

这将返回 0,而我期待的是 11。我错过了什么?

当然也是一个简化的例子。我想创建多个对象,每个对象都应该保持自己的变量状态。例如,如果我想要一个模块将列表附加到容器 DIV 但还包含在该列表中添加、清除或查询数据的函数,我应该如何构建模块函数以便每个实现都保持自己的状态。

谢谢

最佳答案

您实际上并没有遗漏任何与此处相关的 requireJS。问题是只有对象通过引用传递(也许数组......现在不能确定)。数字不是。因此,当您返回 {setID: setID, id: id} 时,“id”被设置为“id”的,再也不会被更新。您要做的是使用诸如“getID”之类的函数,它将引用原始变量,而不是原始变量的:

return {
setID: setID,
getID: function () {return id;}
};

然后……

testInstance1.setID(11);
alert(testInstance1.getID());

关于javascript - 如何使用 requireJS 访问模块变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12449845/

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