Javascript Typescript(3.8+;),私有字段的缺点是什么?
TypeScript 3.8支持Javascript Typescript(3.8+;),私有字段的缺点是什么?,javascript,typescript,Javascript,Typescript,TypeScript 3.8支持#private字段。我习惯于使用TypeScript的private字段来阻止对这些字段的访问 我知道这些字段在生成的JavaScript中不是真正私有的,而新的#private在生成的代码中是私有的 撇开“真正的私人”和“假私人”不谈,我有没有理由不把我所有的private转换成#private? 这一举措的不利之处是什么?慢一点吗? 所有浏览器都支持生成的代码吗 谢谢 我有没有理由不把我所有的私人物品都换成私人物品 如果您必须支持非ES6浏览器 这一举措的不
#private
字段。我习惯于使用TypeScript的private
字段来阻止对这些字段的访问
我知道这些字段在生成的JavaScript中不是真正私有的,而新的#private
在生成的代码中是私有的
撇开“真正的私人”和“假私人”不谈,我有没有理由不把我所有的private
转换成#private
?
这一举措的不利之处是什么?慢一点吗?
所有浏览器都支持生成的代码吗
谢谢
我有没有理由不把我所有的私人物品都换成私人物品
如果您必须支持非ES6浏览器
这一举措的不利之处是什么?所有浏览器都支持生成的代码吗
主要缺点/浏览器支持:仅ES6浏览器支持
慢一点吗
是的。但要小心过早的性能优化
优点:严格保密
一个未被问到的问题是你为什么要这么做。旧的关键字private
只是编译时的东西。新的#
私有化是真正的私有化:
class C {
#foo = 10;
}
const c = new C();
console.log(new C()["#foo"]); // prints undefined as its private
我有没有理由不把我所有的私人物品都换成私人物品
如果您必须支持非ES6浏览器
这一举措的不利之处是什么?所有浏览器都支持生成的代码吗
主要缺点/浏览器支持:仅ES6浏览器支持
慢一点吗
是的。但要小心过早的性能优化
优点:严格保密
一个未被问到的问题是你为什么要这么做。旧的关键字private
只是编译时的东西。新的#
私有化是真正的私有化:
class C {
#foo = 10;
}
const c = new C();
console.log(new C()["#foo"]); // prints undefined as its private