this._super()vs this.super()

时间:2014-08-29 12:58:50

标签: javascript ember.js super

我想知道为什么像EmberJS这样的框架使用_super方法来调用扩展对象上的重写方法而不是(在我看来)更符合逻辑this.super

是否有特定原因,例如super是javascript中的保留关键字?因此,您无法将变量或命名函数分配给名称super。分配给this.super的函数是匿名函数吗?

2 个答案:

答案 0 :(得分:1)

_super可用于在可能已设置的其他函数之间区分它。这可能是为了表明它是如何特殊的,或与其他变量不同。或者它可以显示它是私人的。

请参阅:

When do you make an underscore in front of an instance variable?

How does an underscore in front of a variable in a cocoa objective-c class work?

Why do we use _ in variable names?

编辑:就像巴马尔所说的那样(除了少得多的话),这是一种编码风格,没有别的。

答案 1 :(得分:1)

_表示私人会员。您只应该从里面的访问_super,而不是从外面访问。