审核中~
溜忙之道
首页
溜忙手册
offer之道
项目Git
写文章
登录
·
注册
登录
没有账号,去注册
注册
已有账号,去登录
博客
实现New 操作符
南易_站长
阅读量:3865
关注
实现New 操作符
## 什么是new? 众所周知,在JS中,new的作用是通过构造函数来创建一个实例对象。 像下面这样:(和普通函数不一样,当函数用作**构造函数**时,首字母一般要大写,以作区分。) ```js function Foo(name) { this.name = name; } console.log("new Foo('mm')的类型:",typeof new Foo('mm')); // object console.log("Foo的类型:",typeof Foo); // function ``` ## new操作符帮我们做了四件事: 1. 创建空对象; 2. 空对象的原型指针指向构造函数的原型对象; 3. 利用函数的call方法改变this指向,在空对象上挂载属性或方法; 4. 返回对象。 ## 实现NEW ``` function newFun (){ var obj = new Object(); gtr = [].shift.call(arguments); obj.__proto_ = gtr.prototype var res = obj.apply(gtr,arguments) return typeof ret === "object"?res:obj } ```
评论
表情
发送
0
评论