对于web开发(以及更多),我最喜欢的编辑器是伟大的atom编辑器,这是github的开源项目。
和许多代码编辑器一样,我们可以通过安装大量插件来扩展它。除其他外,我使用原子三元
使用tern.js为atom编写Javascript代码智能。通过自动完成+使用建议提供程序。
今天,我将此错误输入编辑器窗口右上角的“警报样式”闪存消息框中:
(/home/poremil/.atom/packages/atom-ternjs/node_modules/tern/lib/infer.js:1588:18) at findTypeFromContext.NewExpression (/home/poremil/.atom/packages/atom-ternjs/node_modules/tern/lib/infer.js:1623:24) at Object.findCompletions 如常运行 at run (/home/poremil/.atom/packages/atom-ternjs/node_modules/tern/lib/tern.js:218::无法读取未定义的属性“CallExpression”(/home/poremil/.atom/packages/atom-ternjs/node_modules/tern/lib/infer.js:774:18) at /home/poremil/.atom/packages/atom-ternjs/node_modules/tern/lib/tern.js:225:13 at analyzeAll (/home/poremil/.atom/packages/atom-ternjs/node_modules/tern/lib/tern.js:339:15) at doRequest (/home/poremil/.atom/packages/atom-ternjs/node_ Object.signal.mixin.request /tern/lib/tern.js:209:5)在响应(/home/poremil/.atom/packages/atom-ternjs/node_modules/tern/bin/tern:224:10)的Object.signal.mixin.request上
但是,没有注意到我的工作流中有任何特定的错误。话虽如此,我还是想了解到底发生了什么。
我还在github项目上打开了问题
发布于 2015-08-15 06:53:38
是的,这看起来确实像个窃听器。以下是破译代码的简化摘录:
var findTypeFromContext = {
NewExpression: function() { return this.CallExpression() }
,CallExpression: function() { console.log('calling expression'); }
}
var finder = findTypeFromContext['NewExpression'];
finder();
这会因为This关键字而中断。
var finder = findTypeFromContext['NewExpression'];
分配使NewExpression方法"out“(与父对象分离)。我的快速修复方法是立即调用对象上的函数,因此它仍然指向正确的位置:
var findTypeFromContext = {
NewExpression: function() { this.CallExpression() }
,CallExpression: function() { console.log('calling expression'); }
}
findTypeFromContext['NewExpression']();
https://stackoverflow.com/questions/32023924
复制相似问题