欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

js面向对象编程

程序员文章站 2022-05-07 22:40:33
...

1. 直接创建对象(集中实例化问题)
2. 工厂模式(对象识别问题)
3. 构造函数模式(实例化对象的方法在每个实例上都要创建一遍)

//构造函数模式
function student(name){
     this.name = name;
}
var student1 = new student('张三');
//每个实例对象对应一个引用,所以实例化对象时,所有属性与方法都会重新创建一遍

4. 原型模式(实例化对象的方法只用创建一遍,共享本身带来的问题)

//原型模式 
 function teacher(){
    teacher.prototype={
              name:'李华';
            }
}
var teacher1 = new teacher();
//每个实例对象引用同一个原型对象,实例化对象时引用相同的属性和方法

构造函数模式和原型模式的主要区别:
js面向对象编程

5. 组合构造函数+原型模式(结合了两者优点)

function student(name){//保持独立的部分用构造函数
     this.name = name;
  }
  student.prototype = {//保持共享的部分用原型
     constructor:student,
     run: function(){
            alert(this.name);
          }     
  }
  var student1 = new student('张三');

6. 动态原型模式(把原型封装在构造函数中)

function student(name){
   this.name = name;
   if(typeof this.run!='function'){//使原型的初始化只执行一次
      student.prototype.run = function(){
         alert(this.name);
      }
   }
}
相关标签: 面向对象编程