new 的模拟实现

简介: new 的模拟实现

什么是 new?

new 运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象类型之一

手动实现

// 第二版的代码
function objectFactory() {
  var obj = new Object(); // 创建一个对象
  Constructor = [].shift.call(arguments); // 取出构造函数
  obj.__proto__ = Constructor.prototype; // 对象的原型指向构造函数的原型
  var ret = Constructor.apply(obj, arguments); // 将剩余参数传入构造函数
  return typeof ret === "object" ? ret : obj; // 返回这个对象
}

使用

function Otaku () {
    ……
}

// 使用 new
var person = new Otaku(……);
// 使用 objectFactory
var person = objectFactory(Otaku, ……)
目录
相关文章
|
2月前
函数的模拟实现
函数的模拟实现
28 0
|
2月前
模拟队列训练
模拟队列训练
17 0
|
2月前
|
C语言
深入理解并模拟实现函数
深入理解并模拟实现函数
23 1
|
2月前
|
图形学 Python
物理光学:光的探索与编程模拟
物理光学:光的探索与编程模拟
36 0
|
2月前
函数的模拟实现1
函数的模拟实现1
41 0
|
Python
抽卡程序模拟
抽卡程序模拟
93 0
|
SQL 监控 前端开发
模拟数据在实际场景中的应用
模拟数据在实际场景中的应用
112 0
模拟数据在实际场景中的应用
|
Go
UCF2016-g2g c u l8r(模拟)
UCF2016-g2g c u l8r(模拟)
59 0