js建立物件陣列 JS 物件

2021-10-13 16:20:51 字數 3375 閱讀 6467

定義

無序的資料集合

鍵值對集合

建立物件的方式

new 操作符 + object 建立物件

var person = new object();

person.name = "lisi";

person.age = 21;

person.family = ["lida","lier","wangwu"];

person.say = function()

2. 字面式建立物件

var person =

};

3. 建構函式模式

function person(name,age,family) 

}var person1 = new person("lisi",21,["lida","lier","wangwu"]);

var person2 = new person("lisi",21,["lida","lier","lisi"]);

鍵名是字串,不是識別符號,可以包含任意字元。

引號可以省略,省略之後就只能寫識別符號。

就算引號省略了,鍵名也還是字串

物件的隱藏屬性

隱藏屬性

delete 操作符用於刪除物件的某個屬性

語法

delete object.property

delete object[『property』]

通過delete操作符, 可以實現對物件屬性的刪除操作,如果返回為true,則刪除成功。

如果刪除的屬性不存在,delete將不會起任何作用,但仍會返回true

delete操作只會在自身的屬性上起作用

語法

obj.key

obj.['key'] //裡面的是字串,而不是變數

object.keys(): 返回乙個包括物件內可列舉屬性以及方法名稱的陣列。

object.getownpropertynames():方法返回乙個指定物件所有自身屬性的屬性名組成的陣列。

3.object.hasownproperty() 判斷自身屬性與共有屬性

4.object.hasownproperty() 判斷自身屬性是否存在

1. 修改或增加屬性

直接賦值:如果key存在,直接修改key的值,如果key不存在,那麼這個物件就會新增乙個key並賦值。

示例

let person=

console.log(person.name )//"lanycsq"

person.name='xiao'

console.log(person.name ) // "xiao"

person.age=18

console.log(person.name ) //

批量賦值:

示例

var person=

console.log(person) //

object.assign(person,)

console.log(person) //

2. 修改或增加共有屬性

無法通過自身修改或增加共有屬性

let obj={}, obj2={}  //共有屬性tostring 

obj.tostring='***' //只是在改obj自身屬性

obj2.tostring //還是在原型上

如果偏要修改或增加原型上的屬性:

obj.__proto__.tostring='***'  //不推薦使用__proto__ 

object.prototype.tostring='***'

一般來說,不要修改原型,會引起很多問題

3. 修改隱藏屬性

推薦使用object.create

let common=

let obj=object.create(common) //以common為原型建立obj

obj.name='jack'

function person()

person.prototype.name = "lanycsq";

​var person = new person();

console.log(person.hasownproperty("name")); //false

console.log("name" in person); //true

console.log(person.name); //"lanycsq"

​person.name = "xiaoxiao";

console.log(person.hasownproperty("name")); //true

console.log("name" in person); //true

console.log(person.name); //"xiaoxiao"

​delete person.name;

console.log(person.hasownproperty("name")); //false

console.log("name" in person); //true ,這個時候訪問的原型物件上的name

console.log(person.name); //"lanycsq"

以上**執行的時候,name屬性可以從例項中獲取的或者原型物件中獲取,因此使用in 來訪問 name屬性始終返回true;而hasownproperty()只能獲取例項物件中的屬性,所以當delete person.name後,例項物件中的name被刪除,所以後面用hasownproperty返回false。當刪除了例項中的name屬性後,恢復了原型中name屬性的連線,所以返回lanycsq。

js 建立js物件

js建立類有集中方法,我個人比較喜歡的方式是 混合的建構函式 原型方式 比較好理解 用建構函式來定義非函式屬性,用原型方式定義物件的函式屬性,結果所有函式鬥只建立一次,而每個物件鬥具有自由的物件屬性例項。function ocar color ocar.prototype.showcolor fun...

js 建立物件

js建立物件方式 var lev function function parent var x parent alert x.name alert x.lev 說明 1.在函式中定義物件,並定義物件的各種屬性,雖然屬性可以為方法,但是建議將屬性為方法的屬性定義到函式之外,這樣可以避免重複建立該方法 ...

JS建立物件

js因為沒有類的概念,所以建立物件時就會有許多的問題,下面列舉幾種建立物件的模式.現在前面做乙個列表 一 工廠模式 二 建構函式模式 三 原型模式 四 組合使用建構函式模式和原型模式 五 動態原型模式 六 寄生構造模式 七 穩妥建構函式模式 工廠模式 用函式來封裝一特定的介面建立物件的細節 func...