JavaScript 8

2017-06-16  本文已影响0人  依依玖玥

如何自定义对象

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 循环中的代码块将针对每个属性执行一次。

每一天的进步都是你的成长,你必须快速成长,因为有人在等你,加油!!!

上一篇 下一篇

猜你喜欢

热点阅读