Javascript ES6这可以';I don’我看不见全班同学

Javascript ES6这可以';I don’我看不见全班同学,javascript,ecmascript-6,nightmare,Javascript,Ecmascript 6,Nightmare,我有以下课程 class Foo { baz = 42 url = 'www.foo.bar' foo(){ console.log('Hello from foo') return 'baz' } run() { let nightmare = Nightmare() var _this = this nightmare .on('console', (log, msg) => { console.log

我有以下课程

class Foo {
  baz = 42
  url = 'www.foo.bar'
  foo(){
    console.log('Hello from foo')
    return 'baz'
  }
  run() {
    let nightmare = Nightmare()
    var _this = this
    nightmare
      .on('console', (log, msg) => {
      console.log(msg)
      })
      .goto(this.url)
      .evaluate((ctx)=>{
        console.log('hello from evaluate')
        ctx.foo()
        return 'title'
      }, _this)
      .end()
      .then(function(title){
        console.log(title);
      })
  }
}
我试图将scapping划分为多个方法,但我无法找到如何从evaluate函数调用成员。我只能看见

你好,我是evaluate


看起来好像从来没有调用过foo。

Afaik您无法将函数等不可序列化的数据传递到
evaluate
@Bergi有趣的是,我可以看到ctx是一个对象:{bar:42,url:'.'''''},但我无法对其调用方法。是的,它是一个没有任何方法的对象。可序列化的部分被传输了,功能没有被传输。