js 物件導向程式設計

2022-07-12 05:39:10 字數 942 閱讀 1347

無序屬性值的集合,屬性可以是基本值,物件或者是函式。(陣列也可以看做是物件,下標是屬性名)

configurable :表示能否通過delete刪除屬性從而重新定義屬性,能否修改屬性的特性或者能否把屬性修改為訪問器屬性。

enumerable:表示能否通過for-in迴圈返回屬性。

writable:表示能否修改屬性的值。

value:包含這個屬性的資料值。

要修改屬性預設的特性(前三個預設為true,最後乙個預設為undefined,這也是為什麼屬性定義了而未初始化的時候是undefined的原因。)。必須使用object.defineproperty()方法,這個方法接受三個引數,屬性所在的物件、屬性的名字和乙個描述符物件(上面四個中的乙個或者多個)

configurable,enumerable屬性同上。

get:在讀取屬性時呼叫的函式;

set:在設定屬性時候使用的方法。

訪問器屬性不能直接定義,必須使用object.defineproperty()來定義。

通過in和hasownproperty()來確定屬性是在原型中還是在物件中

in是沿著原型鏈一直尋找屬性,而hasownproperty()只在當前物件中尋找。

三種遍歷方式

for-in,object.keys(),object.getownpropertynames()

不可擴充套件 object.preventextens(obj);可刪除

密封物件object.seal(obj); 不可擴充套件,不可刪除,已有成員的configurable置為false,但是可寫;

凍結物件:object.freeze(obj),不可擴充套件,不可刪除,不可寫;成員的writable置為false。

function isarray(v)

alert(isarray());

JS物件導向程式設計 物件

一般面向過程的寫法都是寫很多function,壞處 1.復用不好 2.函式名稱容易重複衝突 下面介紹物件導向的寫法 在js中每個函式function都是乙個物件。比如,下面這個就是乙個物件,我們在使用的時候就可以當作物件來使用。function helloworld 使用下面測試函式 呼叫該函式就會...

js物件導向程式設計

js物件導向程式設計 js使用建構函式作為物件的模板 var vehicle function 生成物件例項 var v new vehicle v.price 1000 傳引數的建構函式 var vehicle function value var v new vehicle 500 protot...

js物件導向程式設計

1.直接建立物件 集中例項化問題 2.工廠模式 物件識別問題 3.建構函式模式 例項化物件的方法在每個例項上都要建立一遍 建構函式模式 function student name var student1 new student 張三 每個例項物件對應乙個引用,所以例項化物件時,所有屬性與方法都會重...