gpt4 book ai didi

javascript 属性访问器

转载 作者:可可西里 更新时间:2023-11-01 02:16:52 25 4
gpt4 key购买 nike

在 Javascript 中,使用属性访问器似乎并不常见(与其他 OO 语言(例如 Java 不同)。

如果我有一个 Person 对象,其名称定义为

function Person(name) {
this.name = name;
}

一个人的名字不会改变,但我确实希望能够在需要时访问它,所以我可以这样做:

function Person(name) {
var name = name;
this.getName = function() {
return name;
}
}

即使在动态语言中,我认为使用 getter 和 setter 的原则也适用于静态类型的 OO 语言(例如封装、添加验证、限制访问等)

这个问题可能会因为主观而被关闭,但我很好奇为什么这种行为不会更频繁地出现(例如,如果一切都是公开的,Java 开发人员会发疯)。

在 javascript 中是否有一种“标准”的方式来做到这一点?我见过 Object.defineProperty,但并非所有浏览器都支持它。

最佳答案

Javascript 具有可拦截的属性访问器:

http://ejohn.org/blog/javascript-getters-and-setters/

恕我直言,这是一个比 Java 更严格的显式 getter 更好的实现统一访问原则的解决方案,但这也是该语言的简单性和不灵 active 的一部分(例如 Groovy 允许类似的拦截)。

关于javascript 属性访问器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12325791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com