如何自定义对象
1.简单的创建对象
var person = new Object();
// 对象可以添加属性
person.name = "名字";
person.age = 20;
person.sex = “性别”;
// 对象可以添加方法
person.run = function(){
alert("人在跑");
}
2.组合创建对象方法
var obj = {
name:"名字",
age:18,
sex:"性别",
sayHi:function(){
alert("我叫" + obj.name + ",年龄" + obj.age);
}
}
访问对象属性
1.点语法
person.name
2.方括号语法
[属性名]
person[‘name’]
工厂模式
解决创建多个实例对象的问题,定义工厂函数,用来创建实例对象
例如,函数 createCar() 可用于封装前面列出的创建 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();
为函数传递参数
我们还可以修改 createCar() 函数,给它传递各个属性的默认值,而不是简单地赋予属性默认值:
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"
在工厂函数外定义对象的方法
前面的例子中,每次调用函数 createCar(),都要创建新函数 showColor(),意味着每个对象都有自己的 showColor() 版本。而事实上,每个对象都共享同一个函数。
有些开发者在工厂函数外定义对象的方法,然后通过属性指向该方法,从而避免这个问题:
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"
构造函数
js中没有类的概念,构造函数相当于类,用来创建对象,定义构造函数就像定义工厂函数一样,命名规则:首字母大写
for...in 循环
for...in 语句循环遍历对象的属性。
for (对象中的变量)
{
要执行的代码
}
注释:for...in 循环中的代码块将针对每个属性执行一次。
每一天的进步都是你的成长,你必须快速成长,因为有人在等你,加油!!!