Typescript构造函数中的公共与私有
TypeScript构造函数中的公共成员在类中是公共的,而私有成员是私有的,这对吗 如果是,公共成员和财产之间的有效区别是什么Typescript构造函数中的公共与私有,typescript,constructor,private-members,public-members,Typescript,Constructor,Private Members,Public Members,TypeScript构造函数中的公共成员在类中是公共的,而私有成员是私有的,这对吗 如果是,公共成员和财产之间的有效区别是什么 假设区别在于属性的行为更像c#属性(也就是说,可以有与其访问相关联的代码),那么为什么要将字段设置为公共字段,而不提供将其设置为属性所固有的保护?private创建字段,public创建属性 这不像是C#属性,事实上,它之所以成为属性,只是因为它是公共的。没有访问器。让我们先看看C类,然后将其转换为TypeScript: public class Car { p
假设区别在于属性的行为更像c#属性(也就是说,可以有与其访问相关联的代码),那么为什么要将字段设置为公共字段,而不提供将其设置为属性所固有的保护?private创建字段,public创建属性 这不像是C#属性,事实上,它之所以成为属性,只是因为它是公共的。没有访问器。让我们先看看C类,然后将其转换为TypeScript:
public class Car {
private int _x;
private int _y;
public Car(int x, int y)
{
this._x = x;
this._y = y;
}
}
表示不能从类外访问\u x
和\u y
,但只能通过构造函数进行分配,如果要在TypeScript中编写相同的代码,它将是:
class Car {
constructor(private _x: number, private _y: number) {}
}
如果您使用过TypeScript,您会注意到我们使用this
关键字来访问这些变量
如果它只是参数,那么在类的构造函数之外使用this.\ux
或this.\uy
有什么意义,因为它也会创建成员变量
以下是根据上述类型脚本代码生成的JavaScript代码:
var Car = (function () {
function Car(_x, _y) {
this._x = _x;
this._y = _y;
}
return Car;
})();
this.\ux
和this.\uy
被移动到另一个函数中,这意味着Car
对象无法访问它,但您可以启动并分配新车(10,20)
通常您会使用一个字段,因为属性会增加更多的击键次数和代码复杂性,但没有优势?你能在这里更清楚地说明场地和财产吗。