How to get access to private field via square brackets in JavaScript(如何在Java中通过方括号访问私有字段)
本文介绍了如何在Java中通过方括号访问私有字段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
此代码起作用:
class Test {
#field
get field() {
return this.#field;
}
}
但如果我想计算字段名我必须使用方括号,但它不起作用:
class Test {
#field;
get field() {
return this['#field'];
}
}
有没有办法获取具有计算名称的私有字段?
推荐答案
这不可能。来自proposal:
没有私有计算属性名称:
#foo是私有标识符,#[foo]是语法错误。
和its FAQ:
既然
this.#x访问名为#x的私有字段,为什么this['#x']不访问?
这将使属性访问语义复杂化。
动态访问私有字段与"私有"的概念相反。例如,这是关于:
class Dict extends null { #data = something_secret; add(key, value) { this[key] = value; } get(key) { return this[key]; } } (new Dict).get('#data'); // returns something_secret但
this.#x和this['#x']的不同语义不会破坏当前语法的不变量?不完全是,但这是一个令人担忧的问题。
另一方面,它们的不同可能会令人惊讶,而这一点 是当前提案的一个缺点。this.#x以前从未 法律语法,所以从一个角度来看,不可能有不变的 关于它。
另请参阅this issue。
这篇关于如何在Java中通过方括号访问私有字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
编程基础网
本文标题为:如何在Java中通过方括号访问私有字段
基础教程推荐
猜你喜欢
- 带角度的选项卡:仅使用 $http 在单击时加载选项卡 2022-01-01
- 使用 jQuery 在悬停时交换 DIV 类 2022-01-01
- 当木偶师打开Chrome时,不能使用Chrome扩展 2022-01-01
- HTML5 画布调整为父级 2022-01-01
- 即使每次插入第一个输入的值不同,第二个输入仍显示相同的输入值 2022-01-01
- CORS:当凭据标志为真时,无法在 Access-Control-Allow-Origin 中使用通配符 2022-01-01
- 从快速中间件中排除路由 2022-01-01
- 逻辑运算符 ||在 javascript 中,0 代表 Boolean false? 2022-01-01
- 在 Javascript 中使用 Fetch API 上传文件并显示进度 2022-01-01
- 最佳动态 JavaScript/JQuery 网格 2022-01-01
