日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JavaScript | 数据属性与访问器属性

發(fā)布時間:2024/8/26 javascript 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaScript | 数据属性与访问器属性 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

屬性類型

數據屬性 - 包含一個數據值的位置,可以讀取和寫入值

[writable]

是否能修改屬性的值

true

[enumerable]

是否通過for in 循環(huán)返回屬性(是否可以被枚舉)

true

[configurable]

是否能通過delete刪除,能否修改屬性的特性,能否修改訪問器屬性

true

[value]

包含這個屬性的數據值,讀取屬性值的時候從這個位置讀取。

undefined

訪問器屬性

[enumerable]

是否通過for in 循環(huán)返回屬性(是否可以被枚舉)

true

[configurable]

是否能通過delete刪除,能否修改屬性的特性,能否修改訪問器屬性

true

[get]

讀取屬性時調用的函數

undefined

[set]

寫入屬性時調用的函數

undefined

屬性操作

  • 定義屬性:Object.defineProperty()
  • 查看屬性:Object.getOwnPropertyDescriptor()
"use strict"; // ***************************************************************** // 操作數據屬性 var person = {name: 'hugh',age: 29,sayName: function() { console.log(1); } } // 修改屬性默認特性:Object.defineProperty() Object.defineProperty(person, "name", {writable: true,value: 'dong',configurable: false,enumerable: false }); console.log(person);// ***************************************************************** // 操作訪問器屬性 var book = {_year: 2004, // _作為標記只能通過對象訪問的屬性edition: 0 }; Object.defineProperty(book, "year", {// 訪問器屬性year包含setter和getter函數get: function() {return this._year;},set: function(newValue) {this._year = newValue;this.edition = newValue - 2004;} }) book.year = 2008; console.log(book); console.log(book.edition); // 舊方法,ie8部分不支持defineProperty() // 嚴格模式不可用 // book._defineGetter_("year",function(){ // return this._year; // }); // book._defineSetter_("year",function(newValue){ // this._year = newValue; // this.edition = newValue - 2014; // });// ***************************************************************** // 定義多個屬性 var book2 = {}; Object.defineProperties(book2, {// 數據屬性 _year: {value: 2004,writable: false,enumerable: false,configurable: true},edition: {value: 0,writable: false,enumerable: false,configurable: true},// 訪問器屬性 year: {get: function() {return this._year;},set: function(newValue) {this._year = newValue;this.edition = newValue - 3000;}} }); console.log(book2);// ***************************************************************** // 查看屬性的屬性 console.log(Object.getOwnPropertyDescriptor(book2,'_year')); console.log(Object.getOwnPropertyDescriptor(book2,'edition')); console.log(Object.getOwnPropertyDescriptor(book2,'year'));

轉載于:https://www.cnblogs.com/hughdong/p/7262539.html

總結

以上是生活随笔為你收集整理的JavaScript | 数据属性与访问器属性的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。