前言

在这篇中,我们开始讲述js中最基础的一个理念也就是原型,可以说js原型链是js最为重要的设计理念,没有原型,那么js也就失去了它的赖以生存的基础,在实际的运用中,我们情不自禁的就运用到了原型模式。哪怕你不知道原型为何物都仍然可以很熟练的使用它。

什么是原型模式

原型模式很简单,我们声明一个基类,在这里面定义对象公共属性以及方法,在其他方法中,我们可以通过call,apply方法来改变this指向以此来继承基类的属性。

代码实现

  1. //图片轮播类
  2. var LoopImages = function(imgArr,contaniner){
  3. this.imagesArray = imgArr;
  4. this.container = container;
  5. }
  6. LoopImages.prototype = {
  7. createImage: function(){
  8. console.log("创造轮播图像!")
  9. }
  10. changeImage: function(){
  11. console.log("切换下一张图片")
  12. }
  13. }
  14. var SlideLoopImg = function(imgArr,container){
  15. LoopImages.call(this,imgArr,container)
  16. }
  17. SliderLoopImg.prototype = new LoopImages();
  18. //重写
  19. SliderLoopImg.prototype.changeImage = function(){
  20. console.log("重写基类方法")
  21. }

这样我们便实现了原型模式,我们可以看出来,我们把属性和方法分离开来了,也是为了防止子类构造函数在创建的时候需要花费太多性能去创建方法。并且在这里我们可以实现基类改变了所有继承该基类的方法都会体现出来。这是它的一大自由之处,也是因为太过自由,所以在改变基类的时候需要额外小心。