Originally Posted by
prachi kamble
or i can simply write
engine.evaluate("function func('a1', 'a2');");
You definitely can't write that because this code has a syntax error.
As I said the code works regardless where the function is defined.
#include <QScriptEngine>
#include <QCoreApplication>
int main(int argc, char **argv) {
QScriptEngine engine;
engine.evaluate("function func() { for(var i = 0; i < arguments.length; ++i) print('Arg ',i+1,': ', arguments[i]); }"); // define here
engine.evaluate("func('a1', 'a2');"); // call here
return 0;
}
#include <QScriptEngine>
#include <QCoreApplication>
int main(int argc, char **argv) {
QCoreApplication app(argc, argv);
QScriptEngine engine;
engine.evaluate("function func() { for(var i = 0; i < arguments.length; ++i) print('Arg ',i+1,': ', arguments[i]); }"); // define here
engine.evaluate("func('a1', 'a2');"); // call here
return 0;
}
To copy to clipboard, switch view to plain text mode
This also works (notice the parenthesis in function definition):
#include <QScriptEngine>
#include <QCoreApplication>
int main(int argc, char **argv) {
QScriptEngine engine;
QScriptValue fun = engine.evaluate("(function func() { for(var i = 0; i < arguments.length; ++i) print('Arg ',i+1,': ', arguments[i]); })");
fun.call(QScriptValue(), QScriptValueList() << "a1" << "a2");
return 0;
}
#include <QScriptEngine>
#include <QCoreApplication>
int main(int argc, char **argv) {
QCoreApplication app(argc, argv);
QScriptEngine engine;
QScriptValue fun = engine.evaluate("(function func() { for(var i = 0; i < arguments.length; ++i) print('Arg ',i+1,': ', arguments[i]); })");
fun.call(QScriptValue(), QScriptValueList() << "a1" << "a2");
return 0;
}
To copy to clipboard, switch view to plain text mode
Bookmarks