处理JavaScript项目。我知道,这有点复杂,但我试图通过查询Object1中的相关属性来基本验证和处理来自Object2的信息(如果有意义的话)......
Roster.setDefaultSubscriptionMode(Roster.SubscriptionMode.accept_all);
String number = datacollection.get(i).getNo().replace("+", "");
String jid = number + "@localhost";
Collection<RosterEntry> entries = roster.getEntries();
for (RosterEntry entry : entries)
{
System.out.println(entry);
if (entry.getUser().equals(jid))
{
rosterAlreadyAdded = true;
if (entry.getType() != RosterPacket.ItemType.both)
{
// Create a presence subscription packet and send.
Presence presencePacket = new Presence(Presence.Type.subscribe);
presencePacket.setTo(jid);
connection.sendStanza(presencePacket);
}
}
}
if (!rosterAlreadyAdded)
roster.createEntry(jid, jid, null);
我知道这有点令人费解。但我的问题是它返回的地方 'param._name',它给出了一个TypeError。但是,在上一行中,当我将它发送到控制台时,它很好。
我承认我对JavaScript有点新,甚至对OOP更新,所以如果这是一个愚蠢或荒谬的问题,请放轻松我!
有什么想法吗?所有的想法和建议都表示赞赏。
由于
答案 0 :(得分:0)
我在代码中做了同样的更正,试试看:
Object1 = function() {
this._list = [];
};
Object1.prototype.method1 = function(param) {
if (param == "foo") { this.method2("foo"); }
};
Object1.prototype.method2 = function(param) {
for (var i = 0; i < this._list.length; i++) {
var item = this._list[i];
if (item._name == param) {
console.log(item._name);
return item._name;
}
}
};
Object2 = function(name) {
this._name = name || "foo";
}
var object = new Object1();
var foo = new Object2("foo");
object._list.push(foo);
object.method1("foo");
答案 1 :(得分:0)
Object1 Method1应如下所示:
Object1.prototype.method1 = function(param) {
if (param == "foo") { return this.method2("foo"); }
};
请注意返回。感谢所有试图回答并为您提供帮助的人。这篇文章从一开始就是一个火车残骸 - 我自己的错 - 我为此道歉,但我非常感谢你的帮助和善意,帮助我完成它。