javascript - 在子函数中引用 parent(this) 是不好的做法吗?

标签 javascript

上下文

在典型的 JavaScript OO 类中,例如

function parent(){
     this.a = "parent";
     this.child = function(){
          console.log(this.a); //undefined
     }
}

现在我知道您可以使用以下方法引用父级 this:

 var that = this;

问题

这是好的、坏的还是中立的做法?而且我想也许可以指导我在性能或可能的替代方法方面寻找注意事项。

注意:我已经阅读了其他一些 stackoverflow 问题/答案,但他们更多地询问如何使用它而不是使用它的问题(如果有的话)。

最佳答案

Is this considered good, bad or neutral practice?

这是完全正常的做法。它是 JavaScript 工作原理的基础。只要适合情况,就没什么问题。


主观:

为此使用 that 是我的一个宠儿。称它为 that 毫无意义。然而,这是常见的做法。 :-) 我经常使用 self,它很常见(不像 that 那样常见)。正如评论中所指出的那样,它稍微会让您遇到调试麻烦,因为 self 在浏览器上是全局的(它类似于 window)。我经常做的另一个事情是选择一个与事物实际相关的名词,这增加了语义值(value)。例如,如果 this 引用 Whatsit 实例,我可能会使用 whatsittheWhatsit。下面的另一个建议是 _this(带下划线)。一个体面的 IDE 会将其着色为与 this 不同的颜色,从而减少您误读它的几率,但存在这种担忧。

但这纯粹是一种风格选择,是很多人做出的选择。

关于javascript - 在子函数中引用 parent(this) 是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20920118/

相关文章:

javascript - 单击 VUE 在子组件上无法正常工作

javascript - Jquery检测用户交互

javascript - 如何将元素的每个单词包装在 span 标签中?

javascript - 关于JavaScript中 "this"的问题

javascript - 如果您不记得匹配的部分,那么在正则表达式中使用括号有什么意义呢?

javascript - 如何将多个 JavaScript 变量插入到集合中

javascript - 确定 dropzone.js 中所有文件何时上传成功

javascript - 屏幕尺寸变化时的 Angular Bootstrap 范围

javascript - angularJS 指令中的 Highchart

javascript - 复制并从 ag-grid 中选择文本