** 1: OOP 指什么?有哪些特性? **####
OOP
OOP是Object-oriented programming的缩写,指面向对象程序设计。
在面向对象程序设计中有两个重要概念
1.类:
类是对现实生活中一类具有共同特征的事物的抽象
2.对象:
对象是类的实例,对象包含属性和方法,属性是需要记忆的信息,方法是对象能够提供的服务。
**三个特性: **
1. 继承
子类能继承父类的属性和方法
子类能添加新的属性和方法,还能重写父类的属性和方法
2. 封装
隐藏对象的属性和实现细节,仅对外公开接口
3. 多态
指同一个实体同时具有多种形式,同一操作作用于不同对象,可以有不同的解释,产生不同的执行结果。
** 2: 如何通过构造函数的方式创建一个拥有属性和方法的对象? **####
function Animal(name, sound){
this.name = name;
this.sound = sound;
}
Animal.prototype.bark = function(){
console.log(this.sound)
}
var cat = new Animal('mimi', 'Miaow');
cat.bark();//Miaow
** 3: prototype 是什么?有什么特性 ?**####
- 所有的构造方法都有一个prototype属性,并且可以为其添加方法。添加给构造方法的prototype属性的任何方法都可以作为该构造方法所创建的所有对象的一个方法来使用。
** 4:画出如下代码的原型图 **####
function People (name){
this.name = name;
this.sayName = function(){
console.log('my name is:' + this.name);
}
}
People.prototype.walk = function(){
console.log(this.name + ' is walking');
}
var p1 = new People('饥人谷');
var p2 = new People('前端');
** 5: 创建一个 Car 对象,拥有属性name、color、status;拥有方法run,stop,getStatus **####
var Car = function (name,age,status){
this.name = name;
this.age = age;
this.status = status;
}
Car.prototype.run = function(){
to do .......
}
Car.prototype.stop = function(){
to do ........
}
Car.prototype.getStatus = function(){
to do ..........
}