JavaScript對象訪問器屬性
阿新 • • 發佈:2018-03-24
get name ret highlight type ron efi 有一個 訪問器屬性
對象訪問器就是setter和getter,他們的作用就是
- 提供另外一種方法來獲取或者設置對象的屬性值,
- 並且在獲取和設置的時候,可以用一定的其他操作。
看下面代碼:
<script> var person = { _name : "abc", //註意此處的_name有一個下劃線 }; Object.defineProperty(person,"name",{ //註意第二個參數的前面沒有下劃線,所以_name和name是兩個不同的屬性 set : function(value){ this._name = "new name " + value; //註意這裏是給_name屬性賦值 }, get : function(){ return "this is name get by function : " + this._name; //註意這裏是返回字符串加上_name的值 } }); //到這裏,person於是就有了兩個屬性:_name和name屬性 // 直接獲取_name屬性 console.log(person._name); //abc //通過name屬性來間接獲取_name的值,因為會執行name屬性的getter訪問器屬性(方法) console.log(person.name); //this is name get by function : abc // 直接修改_name屬性 person._name = "xyz"; console.log(person._name); //xyz //修改name屬性,但是name屬性的setter訪問器屬性(方法),會作用到_name屬性上 person.name = "wtf"; //該字符串會在前面加上new name,然後在賦值給_name console.log(person._name); //new name wtf console.log(person.name); //this is name get by function : new name wtf </script>
JavaScript對象訪問器屬性