我看到了这个线程,看起来没有办法将复杂对象传递给evaluate()
https://groups.google.com/forum/#!topic/casperjs/x7I8LDFwFJ0
因此,如果我编写一个对象并想在不同的对象之间共享evaluate()
,我该怎么做?
让我们说一些像这样的愚蠢对象,我想一次又一次地使用 getData 函数:
var testObj = (function() {
var a = 1;
function test1(b) {
return (a+b);
}
return {
getData : function(arg) {
return (test1(3) + arg);
}
}
})();
有可能的解决方法吗?
更新 1:
我的意思是通过函数传递对象。如下所示,但它不起作用(返回null
):
var casper = require('casper').create();
casper.start('about:blank', function() {
var TestObj = function() {
var a = 1;
function test1(b) {
return (a+b);
}
return {
getData : function(arg) {
return (test1(3) + arg);
}
}
}
var testObj = new TestObj();
this.echo(casper.evaluate(function(myObject ) {
return myObject.getData(100);
}, testObj));
});
casper.run(function() {
this.exit();
});