gpt4 book ai didi

javascript回调闭包 undefined variable

转载 作者:太空宇宙 更新时间:2023-11-03 22:37:39 25 4
gpt4 key购买 nike

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

他们是如何将文档注入(inject)到回调函数中的?通常,它会作为回调中的参数传递,但不知何故,文档在不通过回调参数传递的情况下仍然可用。

有人可以解释一下这是如何完成的吗?还解释为什么有人会这样做而不只是传递参数?

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();
});
});
});
});

最佳答案

也许正如本文question and answer中所解释的那样,PhantomJS 有一个特殊功能,它可以在全局范围内放置(创建)windowdocument 对象。

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

示例

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

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

关于javascript回调闭包 undefined variable ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23305280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com