但是這個方式有乙個缺點,就是要建立多個物件的時候,需要每乙個物件裡面的屬性都要重新宣告一下,直接向中新增屬性和方法,這樣就造成了**的冗餘,而且這樣建立物件的話,也必須先知道物件的屬性和方法,否則無法建立;
var object =
newobject()
;object.name=
'lili'
;//向物件中新增屬性和方法
object.
sayname
=function
(name)
object.
sayname
('wawa');
alert
(object.name)
;//意思一樣
var object =
}
這種方法建立物件可以大批量的建立,通過函式返回乙個物件的方式建立物件,並且物件的屬性都是一樣的,有點像工廠的流水線,一成不變的,所以一般我們叫這種方式為工廠模式。這種方式的缺點是無法知道物件的型別。
function
creatobject
(name,gender)
}return object;
}var object1 =
creatobject
('lisi',15
);var object2 =
creatobject
('zhasgan',18
); object1.
find()
;//lisi,15
object2.
find()
;//zhasgan,18
這種方法建立物件建立的每乙個物件的型別不同,缺點就是每乙個物件的方法都確定了,無法更改,智慧型通過修改建構函式進行修改。
function
createobject
(name,gender)
}var obj1 =
newcreateobject
('lili',14
);var obj2 =
newcreateobject
('wawa',15
);obj1.
find()
;//lili,14
obj2.
find()
;//wawa,15
原型模式建立的所有物件例項都會共享他們的屬性和方法,但是也可以根據不同物件的需要給物件的屬性進行覆蓋,這樣就可以實現自定的其他物件的屬性。
function
person()
person.prototype.name=
"a";
person.prototype.age=
"29"
;person.prototype.job=
"cc"
;person.prototype.
sayname
=function()
;var person1 =
newperson()
;var person2 =
newperson()
;console.
log(person1)
//{}
console.
log(person1.name)
//a
function
student
(name,gender)
student.prototype.
find
=function()
var p1=
newstudent
('lili',12
);var p2=
newstudent
('wawa',13
);
JS基礎 物件建立
var obj new object 複製 var obj 複製 使用同乙個介面建立很多物件,會產生大量的重複 為了避免該情況,我們把建立物件的過程封裝在函式體內,通過函式的呼叫直接生成物件 工廠模式 因為ecmascript無法建立類,所以就用函式來封裝以特定介面物件的細節。本質就是在函式內通過n...
js中物件 建立 遍歷
js中萬物皆物件 物件是擁有屬性和方法的 物件的屬性和屬性值以鍵值對的形式存在 物件的宣告方式 var obj 獲取物件中的屬性值 obj.屬性名 呼叫物件的方法 obj.屬性名 修改物件中的屬性值 obj.屬性名 新的值 for in 迴圈 遍歷陣列和物件 for var i in obj 遍歷物...
js物件的屬性中括號括起來 JS建立物件的4種方式
建立物件的4種方式 var obj 物件字面量是乙個名 值對列表,每個名 值對之間用逗號分隔,名和值之間用冒號分隔,最後整體用乙個花括號括起來。屬性名可以使用數值,比如5。數值屬性名會自動轉換為字串。var person 屬性名一般不加引號,以下情況必須加引號 在es5 以及es3的一些實現 中,保...