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.sayname()
obj1.sayname()
obj2.sayname()

使用工厂方法创建一个对象

通过该方法可以大批量创建新对象

函数ren(name,gender)能够根据接受的参数来构建一个包含所有必要信息的 Person 对象。可以无数次地调用这个函数,而每次它都会返回一个包含三个属性一个方法的对象。工厂模式虽然解决了创建\多个相似对象的问题,但却没有解决对象识别的问题(即怎样知道一个对象的类型)。 

  主要好处就是可以消除对象间的耦合,通过使用工程方法而不是new关键字。将所有实例化的代码集中在一个位置防止代码重复。

  工厂模式解决了重复实例化的问题 ,但还有一个问题,那就是识别问题,因为根本无法 搞清楚他们到底是哪个对象的实例

function ren(name,gender) {
var dx = new Object();
dx.name = name,
dx.gender = gender,
dx.sayname = function(){
console.log(this.name)
};00
return dx;
}
var a = ren("悟空","男")
a.sayname()

构造函数

使用工厂方法创建的对象,使用的构造函数都是Object
所以创建的对象都是object这个类型
就导致我们无法区分多种不同类型的对象这儿就讲到构造函数
创建一个构造函数就是一个普通的函数,创建方式和普通的函数没有什么区别,不同的是构造函数习惯首字母大写
构造函数和普通函数的区别就是调用函数的方式不同普通函数是直接调用,而构造函数需要使用new关键自来使用
构造函数执行流程
1.立刻创建一个新的对象
2.将新建的对象设置为函数中的this,在构造函数中可以使用this来引用新建的对象
3.逐行执行函数中的代码
4.将新建的对象作为返回值返回

function Person(name){
this.name = name,
this.sayname = fun

}
function fun(){
console.log(this.name);
}
var per = new Person("旺财");
var per1 = new Person("旺财");
var per2 = new Person("旺财");
console.log(per);
console.log(per1);
console.log(per2);

原文地址:https://www.cnblogs.com/niuyaomin/p/12007358.html

时间: 2024-12-16 09:28:20

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

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

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

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

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

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

JS 创建对象的几种方式

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

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

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

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); //问题: 工厂模式没有解决对象识别的问题,不能确定一个对象的类

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创建对象的几种方式

 //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对象.属性(数组