1.用变量声明JavaScript对象
在我们学习面向对象之前, 先让我们重新认识一下JavaScript对象.
给你的motorBike对象一个轮子, 引擎,和座位属性并将他们的数量用数字表示.
var car = {
"wheels":4,
"engines":1,
"seats":5
};
var motorBike = {
"wheels":2,
"engines":2,
"seats":1
};
2.用函数构造JavaScript对象
我们同样可以使用构造函数来创建对象.
一个函数用一个大写字母开头的英文名字表明他是一个构造函数。
例如:
var Car = function() {
this.wheels = 4;
this.engines = 1;
this.seats = 1;
};
再例如:
var Car = function() {
this.wheels = 4;
this.engines = 1;
this.seats = 1;
};
var MotorBike = function() {
this.wheels = 2;
this.engines = 1;
this.seats = 1;
};
3.创建对象实例
使用一个构造对象需要用关键字new一个对象出来:
var myCar = new Car();
myCar这个对象实例就是下面的东东:
{
wheels: 4,
engines: 1,
seats: 1
}
现在,你可以通过myCar这个实例给对象添加新的属性. 例如:
myCar.turboType = "twin";
4.通过给构造函数传参构造不同的对象
构造函数这东西不错, 但如果我们不想每次都构造一样的对象怎么办?
为了解决这个问题我们可以给构造函数传参. 如下例子:
var Car = function(wheels, seats, engines) {
this.wheels = wheels;
this.seats = seats;
this.engines = engines;
};
现在我们可以传参构造对象了.
var myCar = new Car(6, 3, 1);
5.使对象属性私有化(privated)
每个对象都有自己的属性, 还有自己的函数,称为方法.
在上面我们使用this关键字来描述对象的公有(public)属性.
我们同样可以创建不能在对象之外被访问的私有属性和方法。
为了私有化,我们在构造函数中使用var关键字声明属性,而不是this。
例如, 我们只想在一辆车加减速时改变它的速度:
var Car = function() {
// 这是一个private变量
var speed = 10;
// 这些是public方法
this.accelerate = function(change) {
speed += change;
};
this.decelerate = function() {
speed -= 5;
};
this.getSpeed = function() {
return speed;
};
};