3
Rhino에서 JavaScript를 호스트 객체로 반환하는 가장 좋은 방법은 무엇입니까? 나는이 같은 두 개의 클래스가 있습니다Rhino에서 호스트 객체 반환
public class Hosted extends org.mozilla.javascript.ScriptableObject {
private static final long serialVersionUID = 1;
public Hosted() {}
public void jsConstructor() {}
public String getClassName() {
return "Hosted";
}
public Member jsGet_member() {
Member m = new Member();
m.defineFunctionProperties(new String[] { "toString" }, m.getClass(), DONTENUM);
return m;
}
}
public class Member extends org.mozilla.javascript.ScriptableObject {
private static final long serialVersionUID = 2;
public Member() {}
public void jsConstructor() {}
public String getClassName() {
return "Member";
}
public String toString() {
return "called toString()";
}
}
그것은 내가 toString 메소드를 호출 할 수 있습니다 의미에서 작동하지만 내가 예상하는대로 구성원 개체가 작동하지 않습니다
js> defineClass("Hosted");
js> defineClass("Member");
js> var h = new Hosted();
js> h.toString();
[object Hosted]
js> h instanceof Hosted;
true
js> h.__proto__;
[object Hosted]
js>
js> var m = h.member;
js> m.toString();
called toString()
js> m instanceof Member; // Should be true
false
js> m.__proto__; // Should be [object Member]
null
을 나는 경우 그것은 회원 객체 말할 않습니다,하지만 Object.prototype.toString
전화 : 내가 m.setPrototype
및 Context.javaToJS
를 호출하려고했습니다
js> Object.prototype.toString.call(m);
[object Member]
합니다.
감사합니다. –