是否可以在RequireJS中创建一个对象?
因为这样FunctionA
事件中可以看到Click
:
require(["library1", "library2"], function (obj1) {
$('#loginButton').click(function () {
functionA();
});
functionA() {
obj1.value;
}
});
但如果我做这样的事情,它就不起作用了:
var library = new library();
require(["library1", "library2"], function (obj1) {
$('#loginButton').click(function () {
library.functionA();
});
});
function library() {
this.functionA = function () {
obj1.value;
}
}
或
var library = new library();
$('#loginButton').click(function () {
library.functionA();
});
functionA() {
require(["library1", "library2"], function (obj1) {
this.functionA = function () {
obj1.value;
}
});
}
这可能吗?
答案 0 :(得分:0)
我不确定为什么你的明确例子不起作用。但是,我建议您确保jQuery
语句中的require
成为依赖项。
以下是使用dojo
,AMD
使用像RequireJS
这样的RequireJS
环境。我只是想确保我能够为我的示例加载多个模块,dojo
没有像var library = new library();
require(["dojo/dom", "jquery"], function(dom, $) {
$('#button').click(function() {
library.functionA();
});
});
function library() {
this.functionA = function() {
console.log("hello");
}
}
那样的模块。
我能够通过修复依赖项来使你的第二个例子工作。
<script>
var dojoConfig = {
parseOnLoad: false,
isDebug: true,
async: 1,
packages: [{
name: "jquery",
location: "//code.jquery.com",
main: "jquery-1.11.3.min"
}]
};
</script>
<!-- Include the dojo 1.10.4 CDN -->
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script>
<main>
<button id="button" type="button">Click me</button>
</main>
&#13;
public MyList(List<? extends T> list) {
for (T item : list)
This.addWithoutCopy(item);
}
MyList<T> add(T item) {
MyList<T> copy = new MyList<T>(this);
copy.addWithoutCopy(item);
return copy;
}
&#13;