如何自定義對象
1.簡單的創(chuàng)建對象
var person = new Object();
// 對象可以添加屬性
person.name = "名字";
person.age = 20;
person.sex = “性別”;
// 對象可以添加方法
person.run = function(){
alert("人在跑");
}
2.組合創(chuàng)建對象方法
var obj = {
name:"名字",
age:18,
sex:"性別",
sayHi:function(){
alert("我叫" + obj.name + ",年齡" + obj.age);
? ? ? ? ? }
}
訪問對象屬性
1.點語法
person.name
2.方括號語法
[屬性名]
person[‘name’]
工廠模式
解決創(chuàng)建多個實例對象的問題肛走,定義工廠函數(shù)切黔,用來創(chuàng)建實例對象
例如,函數(shù) createCar() 可用于封裝前面列出的創(chuàng)建 car 對象的操作:
function createCar() {
let oTempCar = new Object;
oTempCar.color = "blue";
oTempCar.doors = 4;
oTempCar.mpg = 25;
oTempCar.showColor = function() {alert(this.color); };
return oTempCar;}
let oCar1 = createCar(); let oCar2 = createCar();
為函數(shù)傳遞參數(shù)
我們還可以修改 createCar() 函數(shù)擎勘,給它傳遞各個屬性的默認值,而不是簡單地賦予屬性默認值:
function createCar(sColor,iDoors,iMpg) {
var oTempCar = new Object;
oTempCar.color = sColor;
oTempCar.doors = iDoors;
oTempCar.mpg = iMpg;
oTempCar.showColor = function() {alert(this.color);};
return oTempCar;}
var oCar1 = createCar("red",4,23);
var oCar2 = createCar("blue",3,25);
oCar1.showColor(); //輸出 "red"
oCar2.showColor(); //輸出 "blue"
在工廠函數(shù)外定義對象的方法
前面的例子中鹿寨,每次調(diào)用函數(shù) createCar()蕊肥,都要創(chuàng)建新函數(shù) showColor(),意味著每個對象都有自己的 showColor() 版本众弓。而事實上,每個對象都共享同一個函數(shù)隔箍。
有些開發(fā)者在工廠函數(shù)外定義對象的方法谓娃,然后通過屬性指向該方法,從而避免這個問題:
function showColor() { alert(this.color);}
function createCar(sColor,iDoors,iMpg) {
var oTempCar = new Object;oTempCar.color = sColor;oTempCar.doors = iDoors; oTempCar.mpg = iMpg;
oTempCar.showColor = showColor;? return oTempCar;}
var oCar1 = createCar("red",4,23);var oCar2 = createCar("blue",3,25);
oCar1.showColor();//輸出 "red"? ? oCar2.showColor(); //輸出 "blue"
構(gòu)造函數(shù)
js中沒有類的概念蜒滩,構(gòu)造函數(shù)相當于類滨达,用來創(chuàng)建對象,定義構(gòu)造函數(shù)就像定義工廠函數(shù)一樣俯艰,命名規(guī)則:首字母大寫
for...in 循環(huán)
for...in 語句循環(huán)遍歷對象的屬性捡遍。
for (對象中的變量)
{
要執(zhí)行的代碼
}
注釋:for...in 循環(huán)中的代碼塊將針對每個屬性執(zhí)行一次。
每一天的進步都是你的成長竹握,你必須快速成長画株,因為有人在等你,加油I辍N鄹选!