老外的教学网站Javascript-OOP

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;
  };
};

你可能感兴趣的:(JavaScript,面向对象,对象)