首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >原子封装中的误差

原子封装中的误差
EN

Stack Overflow用户
提问于 2015-08-15 10:41:52
回答 1查看 922关注 0票数 0

对于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项目上打开了问题

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-15 14:53:38

是的,这看起来确实像个窃听器。以下是破译代码的简化摘录:

代码语言:javascript
复制
var findTypeFromContext = {
  NewExpression: function() { return this.CallExpression() }
  ,CallExpression: function() { console.log('calling expression'); }
}
var finder = findTypeFromContext['NewExpression'];
finder();

这会因为This关键字而中断。

  1. var finder = findTypeFromContext['NewExpression'];分配使NewExpression方法"out“(与父对象分离)。
  2. 通过此赋值,this关键字现在指向当前的父对象--其中不存在CallExpression。

我的快速修复方法是立即调用对象上的函数,因此它仍然指向正确的位置:

代码语言:javascript
复制
var findTypeFromContext = {
  NewExpression: function() { this.CallExpression() }
  ,CallExpression: function() { console.log('calling expression'); }
}
findTypeFromContext['NewExpression']();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32023924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档