从外部访问私有属性
Accessing private properties from outside
我在打字稿中遇到了 'strange' 行为:
class A {
private _prop;
public a() {
let x = new A();
x._prop
}
}
不会引发任何异常,而我正在从对象外部访问私有 属性。
有人知道吗:
- 如果这是正常行为(我想是的)
- 在哪里可以找到有关此的文献?我发现它很混乱...
编辑
我的意思是:当我从外部对象 x 访问 private 属性 _prop
时,编译器没有显示任何异常。我不是在谈论 运行 时间。
大多数语言都允许这种私人访问。您无法访问任何其他 class 的私有对象,但您可以访问当前 class 的私有对象,即使它们是 class 的另一个实例的私有对象。
例如 C#:
private
: The type or member can be accessed only by code in the same class or struct.
(未提及会员是否必须通过this
访问)
这是正常行为,您处于相同的 class 上下文中,这意味着您可以访问私有 属性 即使它是新实例。
这是相同行为的 C# 等效项(有效)
public class A
{
private int _prop;
public void MyMethod()
{
var x = new A();
x._prop = 5;
}
}
我在打字稿中遇到了 'strange' 行为:
class A {
private _prop;
public a() {
let x = new A();
x._prop
}
}
不会引发任何异常,而我正在从对象外部访问私有 属性。
有人知道吗:
- 如果这是正常行为(我想是的)
- 在哪里可以找到有关此的文献?我发现它很混乱...
编辑
我的意思是:当我从外部对象 x 访问 private 属性 _prop
时,编译器没有显示任何异常。我不是在谈论 运行 时间。
大多数语言都允许这种私人访问。您无法访问任何其他 class 的私有对象,但您可以访问当前 class 的私有对象,即使它们是 class 的另一个实例的私有对象。
例如 C#:
private
: The type or member can be accessed only by code in the same class or struct.
(未提及会员是否必须通过this
访问)
这是正常行为,您处于相同的 class 上下文中,这意味着您可以访问私有 属性 即使它是新实例。
这是相同行为的 C# 等效项(有效)
public class A
{
private int _prop;
public void MyMethod()
{
var x = new A();
x._prop = 5;
}
}