JavaScript基础知识-面向对象

105 阅读3分钟

面向对象的JavaScript

1. 静态类型语言和动态类型语言的区别?

在编译时便已确定变量的类型,即静态类型

在程序运行的时候,待变量被赋予某个值之后,才具有某种类型,即动态类型

2.静态类型语言的优缺点?

优点:在编译时可发现类型错误,还可以针对一些类型错误进行优化工作,提高执行速度。

缺点:强制为每个变量规定数据类型,类型的声明也会增加更多的代码,这些细节也会让开发者的精力从思考业务逻辑上分散。

3.动态类型语言的优缺点?

优点:编写代码量少,更加简洁,更专注于业务逻辑思考,对阅读也有帮助。

缺点:无法保证变量类型,从而在程序运行时,有可能出现类型相关错误。

4.什么是鸭子类型思想?

就是在开发过程中,不必关心一个对象的类型,只需要关心是否能实现所需的功能。利用鸭子类型思想可以在动态类型语音中实现一个原则:面向接口编程。

5.什么是多态?

同一操作作用于不同的对象上面,产生不同结果。也就是说,给不同的对象执行同一个方法的时候,这些对象会分别做出不同的处理。其实这些对象在此处有超类的概念,就是把这些对象当成超类的不同形态。

多态最根本的思想:通过把过程化的条件分支语句,转化为对象的多态性,从而消除这些条件分支语句。

多态的好处:不再关心对象的类型和行为,只需要直接调用,至于如何实现的多态机制会处理好。

通常使用继承来得到多态效果,是让对象表现出多态性。继承通常包括实现继承接口继承

6.什么是封装?

封装的目的是将信息隐藏。可以隐藏数据、隐藏实现、类型、变化等,即为任何形式的封装。

7. 什么是原型模式?

原型模式不单是一种设计模式,也被称为一种编程范型

原型模式是通过克隆来创建对象的一种模式,如果需要一个跟某个对象一模一样的对象,就可以使用原型模式。

8.原型模式的目的?

原型模式的目的并非需要得到一个一模一样的对象,而是提供了一种便捷的方式去创建某个类型的对象,克隆只是创建这个对象的过程和手段。

9.原型编程泛型基本规则?

  • 所有的数据都是对象;
  • 要得到一个对象,不是通过实例化类,而是找到一个对象作为原型并克隆它;
  • 对象会记住它的原型;
  • 如果对象无法响应某个请求,它会把这个请求委托给它自己的原型。