# new操作符
# 实现
- 创建一个新对象
- 绑定原型
- 执行构造函数中的代码(为这个新对象添加属性)
- 返回新对象
function objectFactory() {
var obj = Object.create(null)
Constructor = Array.prototype.shift.call(arguments);
obj.__proto__ = Constructor.prototype;
var ret = Constructor.apply(obj, arguments);
return typeof ret === 'object' ? ret : obj;
};
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10