对象

1、OOP 指什么?有哪些特性

Object Oriented Programming(面向对象编程)
具有三大特性:封装、继承、多态

  • 可以将一些属性和方法封装
  • 可以继承类(父类与子类)
  • 实例化,就可以创建对象,对象拥有了 的属性和方法、父类的属性和方法、爷爷类的属性和方法...
  • 多态:不同对象的同一个方法,可以实现不同的功能

2、 如何通过构造函数的方式创建一个拥有属性和方法的对象?

//创建构造函数
function People(name){
    this.name = name;
    this.method = function(){
        console.log('this.name')
    }
}
//实例化一个对象p1
var p1 = new People('wuqi')
console下执行结果

3、prototype 是什么?有什么特性

prototype表示原型,每个对象都会连接一个原型对象(通过隐藏的__proto__属性)

console测试结果

当我们通过对象字面量的形式创建一个obj对象的时候,它通过隐藏的属性obj.__proto__和原型对象Object.prototype建立连接,从而可以继承其属性
原型连接只有在检索某个值的时候才会用到,当我们尝试去获取对象的某一个属性值的时候,但在索引中没有发现该对象拥有此属性名,那么JavaScript会试着从原型对象中获取属性值;若该原型对象也没有该属性,那么就再向上级原型查找...

下面p1,p2为Person构造函数实例化的对象

4、绘制原型图

原型图

5、创建一个 Car 对象,拥有属性name、color、status;拥有方法run,stop,getStatus

//创建构造函数,并通过原型为其添加方法
function Car(name,color,status){
  this.name = name;
  this.color = color;
  this.status = status;
}
Car.prototype.run = function(){
  console.log(this.name);
}
Car.prototype.stop = function(){
  console.log(this.color);
}
Car.prototype.getStatus = function(){
  console.log(this.status);
}
//实例化对象
var myCar = new Car('wuqi','red','ok')
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容