【发布时间】:2013-05-30 08:08:52
【问题描述】:
我看到了这个帖子,看起来没有办法将复杂对象传递给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();
});
【问题讨论】:
标签: javascript node.js web-scraping phantomjs casperjs