繁体   English   中英

javascript回调关闭未定义变量

[英]javascript callback closure undefined variable

我今天遇到了新事物。 我想在node中使用phantomjs,并且正在设置phantom npm模块npm link 问题在于如何获得“ document.title”。 请查看他们在网站上的示例代码。

他们如何将文档注入到回调函数中? 通常,它会作为回调中的参数传递,但是某种程度上文档可用而无需通过回调参数传递。

有人可以解释如何完成吗? 还解释了为什么有人会这样做,而不仅仅是通过参数吗?

var phantom;

phantom = require('phantom');

phantom.create(function(ph) {
  return ph.createPage(function(page) {
    return page.open("http://www.google.com", function(status) {
      console.log("opened google? ", status);
      return page.evaluate((function() {
        return document.title;
      }), function(result) {
        console.log('Page title is ' + result);
        return ph.exit();
      });
    });
  });
});

也许如本问答所述 ,PhantomJS具有一项特殊功能,它将windowdocument对象放置(创建)在全局范围内。

通常,这是通过在不使用var关键字的情况下将某些内容分配给变量来完成的。

var test = function(cb){
    document = 'test';
    cb();
}

test( function(){
    console.log(document);
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM