栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

可以在纯JavaScript中实现只读属性吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

可以在纯JavaScript中实现只读属性吗?

编辑: 自从编写了此答案以来

Object.defineProperty
,Ecmascript
5中已经标准化了一种新的更好的使用方式,并在较新的浏览器中提供了支持。如果需要支持“较旧的”浏览器,则可以使用此答案中的一种方法作为备用。


在Firefox,Opera 9.5+和Safari3+,Chrome和IE(已通过v11测试)中,您可以定义getter和setter属性。如果仅定义一个吸气剂,它将有效地创建一个只读属性。您可以使用对象文字或在对象上调用方法来定义它们。

var myObject = {    get readonlyProperty() { return 42; }};alert(myObject.readOnlyProperty); // 42myObject.readonlyProperty = 5;    // Assignment is allowed, but doesn't do anythingalert(myObject.readOnlyProperty); // 42

如果已经有一个对象,则可以调用

__defineGetter__
__defineSetter__

var myObject = {};myObject.__defineGetter__("readOnlyProperty", function() { return 42; });

当然,这在网络上并没有真正的用处,因为它在Internet Explorer中不起作用。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/416120.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号