我想將我的對象的屬性之一設置爲常量。我如何使用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