我想将我的对象的属性之一设置为常量。我如何使用property: value
表示法来做到这一点?在对象中设置常量
var Hero = {
name: "Vasilli Zeitsev",
occupation: "sniper"
}
我想要名称是一个常量,但是做name: const 'Vasilli Zeitsev'
似乎错误。
我想将我的对象的属性之一设置为常量。我如何使用property: value
表示法来做到这一点?在对象中设置常量
var Hero = {
name: "Vasilli Zeitsev",
occupation: "sniper"
}
我想要名称是一个常量,但是做name: const 'Vasilli Zeitsev'
似乎错误。
假设你的目标新的浏览器:
你可以用“Object.defineProperty”来设置的东西不能写。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty
Object.defineProperty(Hero, name, {value: "Vasilli Zeitsev", writable: false})
definePeroperties也可能是相关的:https:// developer .mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperties?redirectslug = JavaScript%2FReference%2FGlobal_Objects%2FObject%2FdefineProperties –
是一个六岁的浏览器,仍然被认为是“新“? – dandavis
@dandavis OP正在尝试使用'const'。我假设'Object.defineProperty'在同一浏览器中可用 – Ian
const: Implemented in JavaScript 1.5, NES 6.0 (Netscape extension,
C engine only)
。
如果你需要在一个对象字面定义一个只读属性,你可以尝试getter
:
var Hero = {
get name() {return "Vasilli Zeitsev"},
occupation: "sniper"
}
它看起来像['Object.defineProperty()'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/ Reference/Global_Objects/Object/defineProperty)可以重写一个getter值,所以它不是防弹的... – Teemu
使用'Object.defineProperty'不允许它是可写的。直接从你提供的链接开始:'创建一个常量,它可以是声明它的函数的全局或局部的。“ - 我没有看到任何有关对象属性的信息 – Ian