javascript中如何让类工厂和构造函数变成同一个函数
来源:互联网 发布:java源文件的扩展名是 编辑:程序博客网 时间:2024/06/05 20:02
我们知道在js中可以用一个函数来定义对象的类,该函数称之为对象的构造函数,我们在需要create对象的时候直接调用这个构造函数即可:
var Man = funciton(name){ this.name = name; };var man = new Man("hopy");
如上所示man对象的类是Man,因为有:
Object.getPrototypeOf(man) === Man.prototype; //true
但是我们同样可以写一个类的工厂方法,用它来生成一个对象,显然该工厂方法不能用new来调用:
function Man_f(name){ var props = { name:{value:name,enumerable:true,writable:true,configurable:true} }; return Object.create(Man_f.prototype,props);}var man_f = Man_f("hopy");
以上2个方法分开来写略显繁琐,那么有没有可能把以上2个方法合成一个方法呢?那是必须的 :)
以下代码将Man和Man_f方法合并成一个Man方法,利用了这样一个事实:在使用new调用的构造器中this指向该类的一个实例:
function Man(name){ var props = { name:{value:name,enumerable:true,writable:true,configurable:true} }; if(this instanceof Man) Object.defineProperties(this,props); else return Object.create(Man.prototype,props);}//我们可以用任意一种方法来创建Man的实例var man0 = new Man("hopy");var man1 = Man("panda");
0 0
- javascript中如何让类工厂和构造函数变成同一个函数
- JavaScript中的工厂模式和构造函数
- javascript中构造函数和prototype属性
- JavaScript中类和构造函数的理解
- javascript工厂方式、构造函数、原型方式
- javascript工厂方式、构造函数、原型方式
- Javascript--工厂模式、构造函数、原型
- Javascript中普通函数和构造函数的区别
- javascript 类 构造函数和原型
- Javascript的类,构造函数和原型
- 剖析javascript中构造函数
- JavaScript中什么是构造函数?
- 对象的工厂模式和构造函数
- 面向对象--工厂方式和构造函数
- javascript 构造函数和方法
- javascript 构造函数和方法
- Javascript函数、构造函数、原型、类和对象
- 当构造函数变成protected
- maven 手动安装本地jar到仓库
- 插入排序
- Content Editor Webpart(三)使用JSOM
- 改变ViewPager滑动速度
- Android DiskLruCache完全解析,硬盘缓存的最佳方案
- javascript中如何让类工厂和构造函数变成同一个函数
- maven学习(下)利用Profile构建不同环境的部署包
- android下拉菜单spinner的使用方法
- 微信110来啦!
- 欢迎使用CSDN-markdown编辑器
- 图像二值化--阈值自动选取
- bzoj1855: [Scoi2010]股票交易 dp
- 二进制中1的个数
- 二分法查找非递归算法