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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

面向对象精要-理解对象

發布時間:2025/3/20 编程问答 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 面向对象精要-理解对象 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、創建對象

創建對象的兩種方法:

使用Object構造函數

var person2 = new Object(); person2.name="Qian";

使用對象的字面形式

var person1={name:"Qian" };

對象添加以及修改時JavaScript會在對象上調用[[Put]][[Set]]方法

2、屬性探測

2.1、使用“in”操作符

console.log("name" in person1)/*true*/

2.2、使用“hasOwnProperty()”方法

console.log(person1.hasOwnProperty("name"))/*true*/

3、刪除屬性

var person1={name:"Qian" }; delete person1.name; console.log(person1.hasOwnProperty("name"))/*false*/

?

?

?4、枚舉屬性

?for-in:可枚舉屬性的內部特征都被設置為true,for-in循環會枚舉一個對象所有的可沒經驗屬性并將屬性名賦給一個變量

var person1 = {name:"Qian",age:12 } for(var item in person1){console.log(item)/*name age*/ }

Object.keys():獲取一個對象的屬性列表已備程序使用

var person1 = {name:"Qian",age:12 }; var properties = Object.keys(person1); for(var i=0;i<properties.length;i++){console.log(i) }

5、屬性類型

數據屬性:包含一個

訪問器屬性:包含一個函數

6、屬性特征

通用特征:

是否可遍歷:[[Enumerable]]

是否可配置:[[Configurable]]---------->可以用delete刪除

修改屬性特征:Object.defineProperty()方法

例:修改某個對象屬性使其變成不可以枚舉且不可配置

Object.defineProperty(person1,"name",{enumerable:false,configurable:false }); console.log(person1.propertyIsEnumerable("name"))/*false*/

數據屬性特征:

[[Value]]:創建對象時該特征自動賦值

[[Writable]]:布爾值,默認可以寫

定義完整的數據屬性:Object.defineProperty()

var person1 = {} Object.defineProperty(person1,"name",{value:"Qian",enumerable:true,configurable:true,writable:true })

訪問器屬性特征:

[[Get]]

[[Set]]

定義多重屬性

Object.defieProperties()方法

var person1 = {} Object.defineProperties(person1, {_name:{value: "Qian",enumerable: true,configurable: true,writable: true},name:{get:function () {console.log("Reading me")}} })

獲取屬性特征:

Object.getOwnPropertyDescriptor()方法

var person1 = {name:"Qian" } var deseciptor = Object.getOwnPropertyDescriptor(person1,"name"); console.log(deseciptor.enumerable)/*true*/

7、禁止修改對象

[[Extensible]]:布爾值,設置為false,禁止新屬性的添加

7.1、禁止擴展

方法:使用Object.preventExtensions()

檢測方法:使用Object.isExtensible()

var person1 = {name:"Qian" } Object.preventExtensions(person1); console.log(Object.isExtensible(person1))/*false*/

7.2、封印對象

方法:Object.seal()

檢測方法:使用Object.isSealed()

var person1 = {name:"Qian" }; Object.seal(person1); console.log(Object.isSealed(person1))/*true*/

7.3、凍結對象

方法:Object.freeze()

檢測方法:Object.isFrozen()

var person1 = {name:"Qian" }; Object.freeze(person1); console.log(Object.isFrozen(person1))/*true*/

總結:

1、將屬性視為鍵值對,對象視為屬性的哈希表有助于理解JavaScript對象。

2、你可以用點好或者中括號訪問對象的屬性

3、用in操作符檢測某個屬性是否存在

4、屬性的兩種類型:數據屬性和訪問器屬性

5、屬性的特征

6、鎖定對象的3中方式

轉載于:https://www.cnblogs.com/QianBoy/p/8859036.html

總結

以上是生活随笔為你收集整理的面向对象精要-理解对象的全部內容,希望文章能夠幫你解決所遇到的問題。

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