javascript - this.evaluate 使用函数参数来实现大型可重用函数

标签 javascript function phantomjs casperjs

我正在使用 this.evaluate 这样:

myData = this.evaluate(getData);

我需要将两个变量传递给 getData 函数,但不幸的是这不能像这样工作:

myData = this.evaluate(getData(varA,varB));

我不想这样调用该函数,因为 getData 是一个很大的函数,我需要在脚本中更频繁地评估该函数:

myData = this.evaluate(function getData(varA,varB) {
// my code...
});

那么我该怎么做才能传递参数并且仍然能够在脚本的其他部分调用该函数呢?

最佳答案

您可以通过以下方式实现:

var casper = require('casper').create();

function add(a, b) {
    return a + b;
}

var result1, result2;
casper.start().then(function () {
     result1 = casper.evaluate(add, 3, 5);
     result2 = casper.evaluate(add, "Hello", ", World.");
}).then(function () {
    casper.echo('result1: ' + result1);
    casper.echo('result2: ' + result2);
})

casper.run();

输出:

result1: 8
result2: Hello, World.

关于javascript - this.evaluate 使用函数参数来实现大型可重用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38316342/

相关文章:

Phantomjs - 如何填充表单,提交并获取结果?

javascript - Nginx 重定向到 PhantomJS

javascript - 从 AngularJs 中的 Controller 绑定(bind) ngModel 或从 ngModel 调用函数

JavaScript删除除一个之外的所有隐藏元素

javascript - 总结一个数字Javascript的所有数字

php - 纬度/经度正则表达式

Python/Kivy - 替换调用函数的另一个屏幕中的标签值

javascript - 如何在 IE 和 PhantomJS 中使用 Typescript 创建 KeyboardEvent

javascript - 我的函数在 onclick 函数内不起作用

function - 我在哪里存储作用于对象数组的函数?