将此/自指针强制显式有什么好处?

Pio*_*ost 17 language-agnostic oop programming-languages language-theory

this/ self/me指针强制显式有什么好处?

根据OOP理论,一个方法应该主要(仅?)对成员变量和方法的参数进行操作.在此之后,它应该是更容易指成员变量,而不是外部的(从视图中的对象的一侧)变量...明确this使得它更详细因而更难指成员变量,而不是外部因素.这对我来说似乎很直观.

Ant*_*sma 21

除了成员变量和方法参数之外,您还有局部变量.关于该对象最重要的事情之一是其内部状态.显式成员变量解除引用使得您非常清楚地引用该状态以及修改该状态的位置.

例如,如果您有以下代码:

someMethod(some, parameters) {
    ... a segment of code
    foo = 42;
    ... another segment of code
}
Run Code Online (Sandbox Code Playgroud)

当快速浏览它时,你必须有一个前一段中定义的变量的心智模型,以了解它是否只是一个临时变量,还是它改变了对象的状态.而this.foo = 42显然对象状态是突变的.如果专门使用显式解除引用,则可以确保该变量在相反的情况下是临时的.

较短,考虑周全的方法使其变得不那么重要,但是,长期可理解性在编写代码时胜过一点便利.