假设我有一个如下定义的类(比方说,LinkedListNode.js):
// LinkedListNode.js
define([
"dojo/_base/declare"
] , function (declare) {
return declare(null, {
constructor: function(data) {
this._data = data;
},
addNext: function(data) {
}
});
});
如何在这个类的定义中示例化它的示例,如下所示:
// LinkedListNode.js
define([
"dojo/_base/declare"
] , function (declare) {
return declare(null, {
constructor: function(data) {
this._data = data;
},
addNext: function(data) {
this._next = new LinkedListNode(data);
}
});
});
下面是我在Java中尝试做的一个例子:
class LinkedListNode {
private int data;
private LinkedListNode next;
public LinkedListNode(int data) {
this.data = data;
}
public void addNext(int data) {
// How can I execute this same statement in JavaScript/Dojo?
this.next = new LinkedListNode(data);
}
}
2条答案
按热度按时间w1e3prcc1#
在Dojo中,你不需要这样做。你只需把新类放在你想使用它的地方的define部分,Dojo会为你进行示例化。所以,如果你保存在Object.js上,你可以这样使用它:
根据编辑补充
要想用你想要的方式去做,你不能用dojo的声明系统来做。你必须用更传统的方式去做。Js是一种自由的语言,你可以用很多方式去做。所以你有几种方法可以在JS中做类似的事情。这里有3种:
JSF中间文件:https://jsfiddle.net/s1pemgbk/2/
但是你如何在Dojo中实现呢?在JS中总是有很多方法,其中之一是:
那么您可以这样使用它:
希望现在能更清楚:)
wd2eg0qa2#
正如您在本例中看到的,使用dojo模块
declare
创建了两个dojo类。Dojo抽象类的方式与Java类似。当使用define
定义类时,您可以在代码中随意启动它。在本例中,
YourMainClass
的constructor
包含对YourClass
示例的引用,该示例是在YourClass
中启动的。现场演示:https://jsfiddle.net/gibbok/uw17etqg/