亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

const和readonly如何保證數據不變

小樊
83
2024-10-12 17:14:19
欄目: 編程語言

constreadonly 都可以用來聲明常量,但它們的使用場景和作用略有不同。

const 用于聲明一個在整個生命周期都不變的變量,即其值在初始化后不能被重新賦值。這意味著 const 變量必須是基本數據類型(如字符串、數字、布爾值等)或者一個不可變的引用類型(如不可變的數組、對象等)。對于引用類型,const 只保證引用本身不變,而引用的對象的內容仍然可以改變。

示例:

const num = 42; // 基本數據類型,不可變
const str = "hello"; // 基本數據類型,不可變
const arr = [1, 2, 3]; // 引用類型,但數組內容不可變
const obj = { key: "value" }; // 引用類型,但對象內容不可變(需要使用 Object.freeze())

readonly 用于聲明一個只讀的屬性,即其值在初始化后不能被重新賦值。readonly 可以用于修飾對象的屬性或者類的屬性。對于修飾對象的屬性,readonly 只保證屬性值不可變,但屬性的引用仍然可以改變。對于修飾類的屬性,readonly 保證屬性值不可變,并且在類的構造函數之外無法修改。

示例:

const obj = {
  key: "value",
  readonly anotherKey: "anotherValue", // 只讀屬性
};

obj.key = "newValue"; // 報錯:TypeError: Cannot assign to read only property 'key' of object
obj.anotherKey = "anotherNewValue"; // 報錯:TypeError: Cannot assign to read only property 'anotherKey' of object

class MyClass {
  readonly myProperty: string;

  constructor(myProperty: string) {
    this.myProperty = myProperty;
  }
}

const instance = new MyClass("initialValue");
instance.myProperty = "newValue"; // 報錯:TypeError: Cannot assign to read only property 'myProperty' of object

總結:

  • const 保證變量本身及其引用的對象內容在初始化后不可變(對于基本數據類型)或不可變引用(對于引用類型)。
  • readonly 保證屬性值在初始化后不可變,但屬性的引用仍然可以改變(對于對象的屬性)或在類的構造函數之外無法修改(對于類的屬性)。

0
北票市| 临清市| 张家港市| 沭阳县| 林芝县| 黄龙县| 闸北区| 彰化市| 精河县| 罗甸县| 宜君县| 阳信县| 平罗县| 古浪县| 万年县| 洛隆县| 江孜县| 泰安市| 和平区| 普格县| 高唐县| 湖南省| 寿光市| 正定县| 武汉市| 安阳县| 修武县| 博客| 法库县| 洛阳市| 沛县| 黄陵县| 合作市| 安龙县| 屏南县| 观塘区| 宝兴县| 托克逊县| 成安县| 宣武区| 西宁市|