<menu id="ycqsw"></menu><nav id="ycqsw"><code id="ycqsw"></code></nav>
<dd id="ycqsw"><menu id="ycqsw"></menu></dd>
  • <nav id="ycqsw"></nav>
    <menu id="ycqsw"><strong id="ycqsw"></strong></menu>
    <xmp id="ycqsw"><nav id="ycqsw"></nav>
  • js刪除對象的屬性怎么做(刪除對象的方法)


    要從一個對象中刪除一個屬性,你可以這樣做。

    delete myObject.regex;
    // 或者
    delete myObject['regex'];
    // 或者,
    var prop = "regex";
    delete myObject[prop];
    

    示例

    var myObject = {
        "a": "1111",
        "b": "2222",
        "c": "3333"
    };
    delete myObject.a;
    
    console.log(myObject);

    知識點: delete 操作符

    delete 操作符用于刪除對象的某個屬性;如果沒有指向這個屬性的引用,那它最終會被釋放。

    與通常的看法不同,delete操作符與直接釋放內存無關。內存管理 通過斷開引用來間接完成的,查看內存管理頁可了解詳情。

    delete 操作符會從某個對象上移除指定屬性。成功刪除的時候會返回 true,否則返回 false。

    但是,以下情況需要重點考慮:

    • 如果你試圖刪除的屬性不存在,那么delete將不會起任何作用,但仍會返回true
    • 如果對象的原型鏈上有一個與待刪除屬性同名的屬性,那么刪除屬性之后,對象會使用原型鏈上的那個屬性(也就是說,delete操作只會在自身的屬性上起作用)
    • 任何使用 var 聲明的屬性不能從全局作用域或函數的作用域中刪除。這樣的話,delete操作不能刪除任何在全局作用域中的函數(無論這個函數是來自于函數聲明或函數表達式)除了在全局作用域中的函數不能被刪除,在對象(object)中的函數是能夠用delete操作刪除的。
    • 任何用let或const聲明的屬性不能夠從它被聲明的作用域中刪除。
    • 不可設置的(Non-configurable)屬性不能被移除。這意味著像Math, Array, Object內置對象的屬性以及使用Object.defineProperty()方法設置為不可設置的屬性不能被刪除。

    代碼例子:

    var Employee = {
      age: 28,
      name: 'abc',
      designation: 'developer'
    }
    
    console.log(delete Employee.name);   // returns true
    console.log(delete Employee.age);    // returns true
    
    // 當試著刪除一個不存在的屬性時
    // 同樣會返回true
    console.log(delete Employee.salary); // returns true

    版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。

    發表評論

    登錄后才能評論
    国产精品区一区二区免费