0

我正在使用 Sebastien Ros 的 4.5 .NET 版本 Jint。还有javascript原型对象,我想用一个对象调用javascript原型构造函数。

我在这里遇到了一些问题。像这样:

function Panel(objectBehind)
{
  log(objectBehind);
}
Panel.prototype.objectBehind;

1) 如何创建一个新的 Panel 对象,调用 ctor 参数?我做到了这一点:

 engine.Execute(script);
 engine.Execute("new Panel();");
 JsValue val = engine.GetCompletionValue();

但是,当然,ctor 参数是空的。

2) 假设我想在新的 java 原型对象上设置 objectBehind 属性,这将如何在 JsValue 对象上工作?

3)我可能可以使用命名变量,然后调用poperty,但是我需要添加命名变量:

       engine.Execute(script);
       engine.Execute("var myPanel = new Panel();");
       //do the set prop on mypanel from here.
4

1 回答 1

2

我想我破解了它:

engine.Execute(@"function Panel(objectBehind)
{
   this.objectBehind = objectBehind;
   return this;//bit strange and unusual pattern
}
Panel.prototype.objectBehind;");

JsValue resultCTor = engine.Invoke("Panel", 1);
JsValue objectBehind = engine.GetValue(resultCTor, "objectBehind");
于 2015-01-04T22:15:56.073 回答