undefined不是构造函数

时间:2016-06-17 03:37:27

标签: javascript capybara poltergeist

我正在使用rails 4,capybara,poltergeist来测试我的rails 4 + angularjs app。在我的角度应用程序中,我的指令控制器中有一个地方有以下代码。

var audience = [someObject1, someObject2, someObject3].findIndex(function(object) {
  return object.id === 1;
});

我在测试期间遇到以下错误

Error: undefined is not a constructor (evaluating '[1,2,3].findIndex(function(v) { return v === 1; })')

实际上它甚至不允许我拥有这样的东西

[1, 2, 3].findIndex(function(v) {
  return v === 1;
});

任何人都知道为什么恶作剧者不喜欢Javascript的findfindIndex方法?

1 个答案:

答案 0 :(得分:6)

find和findIndex是ES6方法,phantomJs可能不支持。如果您没有运行phantomjs 2.1.1,您可以尝试更新,否则您可以使用poltergeist驱动程序配置中的extensions选项加载polyfill,或者重写代码以不使用ES6方法