js创建对象的6种方式

一、工厂模式

function createStudent(name,age){
             var o=new Object();
            o.name=name;
            o.age=age;
            o.myName=function(){
                alert(this.name);
            };
            return o;
         }
         var student1 =createStudent(‘yjj‘,15);
         var student2 = createStudent(‘fff‘,18);
//问题: 工厂模式没有解决对象识别的问题,不能确定一个对象的类型

二、构造函数模式

  function Student(name,age){
            this.name=name;
            this.age=age;
            this.myName=function(){
                alert(this.name);
            };
         }
         var student1_ = new Student(‘yjj‘,15);
         var student2_ = new Student(‘fff‘,18);

         //new 关键字的作用
         //1.创建一个对象
         //2.将构造函数的作用域赋给新对象,this指向了新对象
         //3.执行构造函数中的代码,为新对象添加熟悉
         //4.返回新对象

         //问题: 每个方法都要在每个实例上重新创建一遍

三、构造函数模式+原型模式

 function Student(name,age){
             this.name=name;
            this.age=age;

         }
         Student.prototype.myName=function(){
                alert(this.name);
         };    

         var student1__ = new Student(‘yjj‘,15);
         var student2__ = new Student(‘fff‘,18);
         student1__.myName();

四、动态原型模式

function Student(name,age){
             this.name=name;
            this.age=age;
            if(typeof this.myName!="function"){//第一次进入
                 Student.prototype.myName=function(){
                    alert(this.name);
                 };
            }

         }
       var student1___ = new Student(‘yjj‘,15);
         student1___.myName();

五、寄生构造函数模式

 function Student(name,age){
            var o = new Object();
            o.name=name;
            o.age=age;
            o.myName=function(){
                alert(this.name);
            };
            return o;
         }
         var student1____ = new Student(‘yjj‘,15);
         student1____.myName();
         //这种模式的基本思想是创建一个函数,该函数的作用仅仅是封装创建对象的代码,然后再返回新创建的对象。

六、稳妥构造函数模式

 function Student(name,age){
            var o = new Object();
            var name=name;
            var age=age;
            o.myName=function(){
                alert(name);
            };
            return o;
         }
          var student1_____ = new Student(‘yjj‘,15);
         student1_____.myName();
         //没有公共属性,而且其他方法也不用引用this的对象

时间: 2024-10-11 07:20:29

js创建对象的6种方式的相关文章

js创建对象的四种方式以及消耗时间比较

// Property-less object console.time('zoop1'); var zoop = (function (numObjects) { var pooz = Object.create(null); for(var i = 0; i< numObjects; i++) { pooz[i] = Object.create(null); } return pooz; })(1000000); console.timeEnd('zoop1'); // Using Obje

第184天:js创建对象的几种方式总结

1.面向对象编程(OOP)的特点: 抽象:抓住核心问题 封装:只能通过对象来访问方法 继承:从已有的对象下继承出新的对象 多态:多对象的不同形态 一.创建对象的几种方式 javascript 创建对象简单的来说,无非就是使用内置对象或各种自定义对象,当然还可以使用JSON,但写法有很多,也能混合使用. 1.工厂方式创建对象:面向对象中的封装函数(内置对象) 1 function createPerson(name){ 2 //1.原料 3 var obj=new Object(); 4 //2.

js - 创建对象的几种方式(工厂模式、构造函数模式、原型模式)

原文引用https://www.dazhuanlan.com/2019/08/26/5d62f8b594f10/ 工厂模式 做法:内部创建一个对象,并未对象属性赋值并且返回 缺点:解决创建多个相识对象的问题,但不能识别创建的对象的类型 构造函数模式 做法:直接将属性和方法赋值给 this 对象,没有 return 语句 缺点:对象不是共用方法和属性,每 new 一次对象就要创建一个内存,超出性能消耗 原型模式 做法:通过 prototype 为对象添加属性 缺点:每个实例都共享属性方法,实例中修

JS 创建对象的几种方式

面向对象就是把属性和操作属性的方法放在一起作为一个相互依存的整体--对象,即拥有类的概念,基于类可以创建任意多个实例对象,一般具有封装.继承.多态的特性! ECMA-262把对象定义为:"无序属性的集合,其属性可以包含基本值 对象 或者函数".这就是说对象是一组没有特定顺序的值,其中值可以是数据或者函数. 虽然Object构造函数或对象字面量都可以创建单个对象,但这些方式有个明显的缺点,那就是使用同一个接口创造很多对象,会产生大量的重复代码.所以产生了下面几种模式. 1 工厂模式 fu

JS创建对象的几种方式详解

Js是一门面向对象的语言,里面没有类的思想,所以直接是创建对象,下面介绍几种创建对象的方法: 1.对象字面量的方法:记住键值对格式:{key:value,key :value} 实例: Var obj={name:"演员",move:"长城",age:"18"} 如果想再创建一个新的对象,只能重复上面的操作,所以可操作性差,不能被重复使用,造成的直接后果就是代码的冗余度很高 2使用内置的构造函数 object Var obj=new Object

07.30《JavaScript》——JS创建对象的三种方式

1.第一种创建对象的方式:先定义类再创建对象 // 第一种创建对象的方式:先定义类再创建对象 function stu(sno, name, age){ this.sno = sno; this.name = name; this.age = age; this.study = function(){ alert("学号为"+this.sno+"的学生,姓名叫做"+this.name+",正在努力学习,年龄为"+this.age); } } va

JS创建对象的几种方式整理

javascript是一种"基于prototype的面向对象语言",与java有非常大的区别,无法通过类来创建对象.那么,既然是面象对象的,如何来创建对象呢? 一:通过"字面量"方式创建对象 方法:将成员信息写到{}中,并赋值给一个变量,此时这个变量就是一个对象 列如: var person={"name":"abc","age":22,work:function(){console.loh(1)}} 如果

js创建对象的几种方式

 //1.使用js内置的对象String/Object/Function  var str = new String("js内置对象创建对象");  alert(str);//js内置对象创建对象  //2.使用Json  var books = {   book:[{name:'设计模式'},{name:'Java'},{name:'.Net'}],   author:[{name:'cy'},{name:'lyl'},{name:'cyl'}]  }  //json对象.属性(数组

js创建对象的几种方式(工厂模式、构造函数模式、原型模式)

普通方法创建对象 var obj = { name:"猪八戒", sayname:function () { alert(this.name); } } var obj1 = { name:"沙和尚", sayname:function () { alert(this.name); } } var obj2 = { name:"孙悟空", sayname:function () { alert(this.name); } } obj.saynam