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, ……)
目录
相关文章
|
6月前
函数的模拟实现
函数的模拟实现
44 0
|
6月前
模拟队列训练
模拟队列训练
30 0
|
3月前
|
XML 传感器 算法
SFNC —— 模拟控制(五)
SFNC —— 模拟控制(五)
35 3
|
6月前
|
C语言
深入理解并模拟实现函数
深入理解并模拟实现函数
|
6月前
|
图形学 Python
物理光学:光的探索与编程模拟
物理光学:光的探索与编程模拟
62 0
|
6月前
函数的模拟实现1
函数的模拟实现1
52 0
|
6月前
|
算法 Java
【算法系列篇】模拟算法-2
【算法系列篇】模拟算法-2
|
Python
抽卡程序模拟
抽卡程序模拟
127 0
|
SQL 监控 前端开发
模拟数据在实际场景中的应用
模拟数据在实际场景中的应用
163 0
模拟数据在实际场景中的应用
|
Go
UCF2016-g2g c u l8r(模拟)
UCF2016-g2g c u l8r(模拟)
79 0