批量创建对象的四种模式
1.工厂模式 封装创建对象的函数,提高代码复用性,
缺点:
创建出来的对象都是Object类型,无法区分种类。
每创建一个对象,sayName方法都连着创建一个,浪费空间
(解决:把sayName写在外面,成为全局方法,但依然会方法冗余,假设很多封装的函数中都用到sayName,写在外面的sayName不好区分)
var sayName = function () {console.log(this.name);
}
function Person(name, age, gender) {// return 'hello'return {name: name,age: age,gender: gender,sayName:sayName}
}
var p1 = Person('张三', 12, '男');
var p2 = Person('李四', 18, '女');
console.log(p1, p2, '工厂模式创建的对象');
p1.sayName();
p2.sayName();
console.log(p1.sayName===p2.sayName);
2.构造函数模式
可以区分种类。但是方法还是冗余。
var sayName=function(){console.log(this.name);
}
function Person(name,age,gender){this.name=name;this.age=age;this.gender=gender;
};
var p1=new Person('王五',17,'男');
var p2=new Person('赵六',18,'女');
console.log(p1,p2);
p1.sayName();
p2.sayName();
console.log(p1.sayName===p2.sayName); function Animal(name,age,gender){this.name=name;this.age=age;this.gender=gender;};var n1=new Animal('王五',17,'男');var n2=new Animal('赵六',18,'女');console.log(n1,n2);
3.原型模式
每个函数都有一个属性:prototype(原型属性),这个属性是一个指针,
指向一个对象,该对象用途是包含可以由特定类型的
所有实例共享的属性和方法.
可以共享属性和方法,但是私有属性得不到维护.
属性和方法都在原型中
function Person(){};
Person.prototype={constructor:Person,name:"鬼脚七",age:18,gender:'男',firends:[],sayName:function(){console.log(this.name);}
};
var p1=new Person();
var p2=new Person();
p1.firends.push('terry')
console.log(p1.firends,p2.firends); //p1 p2都有terry
4.组合模式
构造函数模式加原型模式,构造函数中放实例私有的属性,
构造函数原型对象中放共有属性和方法.
function Person(name,age,gender){this.name=name;this.age=age;this.gender=gender;this.firends=[];
}
Person.prototype={constructor:Person,sayName:function(){console.log(this.name);}
}
var p1=new Person('tom',19,'男');
var p2=new Person('lerry',20,'女');
console.log(p1,p2);
p1.firends.push('terry');
console.log(p1,p2);
批量创建对象的四种模式相关推荐
- 2021年用独立站铁赚的四种模式
近期独立站建站平台发布财报,在2020年一年时间里,GMV 翻了一番.这个结果充分说明了独立站越来越受到卖家们的青睐,布局独立站也成为了必备标配. 想在2021年里利用独立站走上人生巅峰?那必然离不开 ...
- Java反射之创建对象的四种方式
Java反射之创建对象的四种方式 1.使用new关键字 2.使用Java反射机制,反射构造器 3.使用克隆方式创建对象Cloneable 4.使用序列化Serializable 1.使用Java反射机 ...
- spi协议时序图和四种模式实际应用详解
大家好,我是无际. 上个章节我们讲解了spi接口定义,今天我们更加深入讲解下spi协议时序图和spi四种模式的用法. 刚开始接触单片机开发时,最怕就是看时序图,对于我来说就是奇怪的知识. 特别是SPI ...
- ThinkPHP的访问模式分为四种模式
ThinkPHP的访问模式分为四种模式 0 普通模式 http://www.yual.com/index.php?m=user&a=show 1 pathinfo模式 http://www.y ...
- Java中创建对象的四种方式
为什么80%的码农都做不了架构师?>>> Java中创建对象的四种方式 (1) 用new语句创建对象,这是最常见的创建对象的方法. (2) 运用反射手段,调用java.l ...
- gRPC四种模式、认证和授权实战演示
前言 上一篇对gRPC进行简单介绍,并通过示例体验了一下开发过程.接下来说说实际开发常用功能,如:gRPC的四种模式.gRPC集成JWT做认证和授权等. 正文 1. gRPC四种模式服务 以下案例演示 ...
- lvs工作在第几层_LVS 原理(调度算法、四种模式、四层负载均衡和七层 的区别)...
目录 lvs的调度算法 lvs的四种模式 四层均衡负载和七层的区别 1.lvs调度算法(最常用的四种) 轮叫调度(rr) 调度器通过外部请求的顺序轮流分配到集群中的真实服务器上,对每台服务器都是均等的 ...
- 企业风险管理的四种模式五种策略分别是什么?
企业风险管理一直是一个经久不衰的话题,企业风险管理对于企业主来说尤为重要,这在很大程度上关系着企业能否健康的发展.鉴于很多人对于企业风险管理这一内容了解不是很透彻,今天分享企业风险管理的四种模式和五种 ...
- 云计算技术架构-云计算四种模式(公有云、私有云、混合云、行业云)
接下来几篇主要从技术角度介绍云计算的架构: 云计算四种模式:公有云.私有云.混合云和行业云(本文讲述) 云计算架构:基础架构层.云平台层.业务应用层和业务管理层 云计算服务模式:IaaS. ...
最新文章
- Starting HAL daemon:[FAILED]
- 【c语言】蓝桥杯算法提高 时间转换
- 【整理】【转载】高薪是怎么跳出来的?
- sqlserver往oracle写数据,Sqlserver连接oracle进行读写数据库
- MySQL事务的不可重复读
- 十四、Canny边缘提取
- java php js_【javascript/PHP】当一个JavaScripter初次进入PHP的世界,他将看到这样的风景...
- 今天,这些公众号被永久禁言
- 基于VMware vSphere的虚拟化平台,内存分配是如何实现的?
- Linux RedHat 5.2 mySQL和Apache协同
- layui如何获取父节点的父节点_layui树形组件(右键、父节点选中子节点全被选中)...
- 修复Ubuntu 14.04中Chromium的Adobe Flash Player的问题
- PHP 大地坐标系转高德经纬度
- 普元:解读歼-20背后的国家安全重要领域信息化跨越
- 电脑回收站在哪里?回收站删除的文件怎么恢复?
- 零基础学Python需要用到哪些软件?
- 微信小程序开发:腾讯地图集成步骤(旧题新说)
- 详解SOME/IP测试
- Sex and Gender
- 初次入坑解析的小程序(决定写代码风格的小程序)
热门文章
- 《复杂》作者梅拉妮·米歇尔发文直指AI四大谬论,探究AI几度兴衰背后的根源...
- Android开发本地音乐获取专辑封面图片
- 新海诚没有参与制作的作品_全能的新海诚,最初几部作品都是他一个人完成的!但是却有缺陷!...
- Google Play 上架总结(二)Google账户关联详解
- git 下载代码到本地
- 互联网产品上线前,做些什么——产品、开发、测试的视角
- 火车头按照关键词采集文章的平台有哪些?亲测实录!
- R语言中写SQL语句
- ecshop图片自动本地化插件,ECSHOP下载商品图片,ECSHOP商品详情远程图片,ecshop商品远程图片保存,ecshop图片自动本地化插件,商品图片本地化
- 来美国一年半了,命里有时终须有,命里无时莫强求(2)