我正在查看以下node.js代码:
Chrome(function (chrome) {
with (chrome) {
on('Network.requestWillBeSent', function (message) {
console.log(message.request.url);
});
on('Page.loadEventFired', close);
Network.enable();
Page.enable();
Page.navigate({'url': 'https://github.com'});
}
}).on('error', function () {
console.error('Cannot connect to Chrome');
});
取自here。我的问题是什么是“with”关键字,它说“with(chrome)”我在api中找不到它。
答案 0 :(得分:2)
它不代表任何东西,它意味着英语单词意义上的“with”。
它不是Node API的一部分,它是核心JavaScript。
请参阅the EcmaScript specification和MDN。
将给定对象添加到评估语句时使用的范围链中。对象周围的括号是必需的。
它基本上意味着对于任何变量,在检查局部变量之后,在检查默认对象(这将是window
这是网页中的客户端JS)之前,对于该名称的属性,它将检查chrome
中的对象是否有该名称的属性。