好奇,刚刚开始使用V8ScriptEngine, 我有这个代码片段
private void button1_Click(object sender, EventArgs e)
{
string f = "function myFunc(x) {if(x >= 3500.00) return '001'; else return '002'; }";
string r = "";
using (var eng = new V8ScriptEngine()) {
eng.Evaluate(f);
r = (string)eng.Script.myFunc(3500.0000001);
}
Console.WriteLine("r={0}", r);
}
并且工作正常..
脚本引擎如何推断脚本语言是Javascript? 我会想象它必须评估整个脚本块以断言它是java还是vb或任何其他支持的语言,这不是一项昂贵的任务吗?或者是否可以告诉Scriptengine该语言目标是特定的味道?
答案 0 :(得分:0)
V8引擎只执行Javascript代码。因此,它假定传递给它的任何代码都是Javascript。
如果其他脚本语言指的是TypeScript或CoffeeScript之类的内容,则V8引擎不直接执行这些操作。它们需要首先编译为Javascript(一个通常称为转换的过程)。此过程将生成与TypeScript / CoffeeScript源代码等效的Javascript代码。