JS构造函数设计模式
来源:互联网 发布:笨方法学python在线 编辑:程序博客网 时间:2024/06/07 07:02
在上一篇文章中看到了工厂模式的缺点,又出现了构造函数的模式。工厂模式
function Person(name, age, sex) { this.name = name; this.age = age; this.sex = sex; this.sayInfo = function () { console.log(this.name + "--" + this.age + "--" + this.sex); };};function sayInfo() { console.log(this.name + "--" + this.age + "--" + this.sex);}var person1 = new Person('z3', 20, 'boy');var person2 = new Person('l4', 21, 'girl');console.log(person1.sayInfo == person2.sayInfo);
console.log(person1 instanceof Person);console.log(person1 instanceof Object);
构造函数模式可以让实例是哪一种具体的类型,但是有一个缺点就是person1的sayInfo与person2的sayInfo函数不一样,因为在js中函数也是对象,所以每次调用function都会产生新的函数地址(new Functoin(),所以会产生新的地址),这就浪费了内存,使得每一个实例都会产生一个新的函数,所以出现了下列的解决方案。
function Person(name,age,sex){ this.name=name; this.age=age; this.sex=sex; this.sayInfo=sayInfo;};function sayInfo (){ console.log(this.name+"--"+this.age+"--"+this.sex);}var person1=new Person('z3',20,'boy');var person2=new Person('l4',21,'girl');
console.log(person1.sayInfo == person2.sayInfo);
console.log(person1 instanceof Person);console.log(person1 instanceof Object);这两个对象的函数地址一样,但是使得oo思想中的封装特性没有了安全感,所以出现了原型设计模式
0 0
- JS构造函数设计模式
- JS设计模式之构造函数模式
- js设计模式之构造函数
- JS设计模式——构造函数模式
- JS设计模式 -原型模式与构造函数
- 读js设计模式有感->构造函数内调用自己公用方法函数
- js 构造函数与原型模式
- 构造函数模式自定义js对象
- js工厂模式(利用构造函数)
- JS工厂模式(工厂函数)、构造函数模式
- 构造函数+原型模式构造js自定义对象
- JS中使用动态原型模式、寄生构造函数模式、稳妥构造函数模式创建对象
- JS里的工厂模式和构造函数模式
- 工厂模式与构造函数模式(js学习)
- js 组合使用原型模式和构造函数模式
- js创建对象 之 工厂模式,构造函数模式
- Js的基于构造函数模式的原型链模式
- javascript设计模式介绍(二) 构造函数模式
- Android Logcat
- 异或运算xor
- struts2如何从一个Action转到另外一个Action
- jstat命令详解
- 简捷的python
- JS构造函数设计模式
- MongoDB配置参数详解
- Oralce 定时任务 调用存储过程
- leetcode第八周解题总结
- SpringMVC Controller介绍
- Unity网格介绍
- H.264 NAL层解析(0x00000001,编码,打包,NALU)
- error LNK2001: 无法解析的外部符号 "public: void __thiscall Cmfc_DeleteFileDlg::OnBnClickedButton3(void)"
- 20瓶药里面有19瓶真药和1瓶假药