@ Пойнти неправильно говорит: это действительно хорошая идея, чтобы забыть все о Java при изучении JavaScript . Инкапсуляция - это объектно-ориентированный принцип, скрывающий внутреннее состояние и поведение объекта, что делает ваш код более понятным.
В javascript вы заставляете вещи работать без / грязной структуры. Typescript - это расширенный набор javascript, этот парень - ваш друг, если вы программист на C #, Java или любом другом объектно-ориентированном языке.
Пример:
в миобъекте. Ц
export class MyObject {
// private property
private _x: number;
private _z: number;
// public property
y: number;
constructor(private _d?: number) {
this._x = 0;
this.y = 0;
this._z = 0;
this.clog(_d)
}
// access modifier only for _x
get x() {
return this._x;
}
set x(value: number) {
this._x = value;
}
private clog(d: number) {
console.log(d);
}
// arrow function -> public
testf = () => { console.log('value of this._d' , this._d); }
}
тогда вы попадаете в myobject. js это:
export class MyObject {
constructor(_d) {
this._d = _d;
// arrow function -> public
this.testf = () => { console.log('value of this._d', this._d); };
this._x = 0;
this.y = 0;
this.clog(_d);
}
// access modifier
get x() {
return this._x;
}
set x(value) {
this._x = value;
}
clog(d) {
console.log(d);
}
}
Давайте использовать его в основном. Ts :
import { MyObject } from './myobject';
let mo = new MyObject(15);
// set a value to the private property x
mo.x = 5;
// get the value of the private property x
// output 5
console.log(mo.x);
vscode и intellisense:
с помощью intellisense в vscode вы видите, что оно не показывает приватное свойство _z и приватную функцию clog ().
Я предлагаю вам посмотреть этот урок и придумать лучшую идею. Link
?