前段时间我一个朋友面试,被面试官问了一个问题:写一个js方法实现一个 new
运算符。我朋友内心深处当时就有一万头草泥马奔腾而过......。new
都用过,用来创建实例对象,可new
操作背后都做了些什么,我们却很少关注。
new 操作背后
new 运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例。new 关键字会进行如下的操作:
1、创建一个空的简单JavaScript对象(即{});
2、链接该对象(即设置该对象的构造函数)到另一个对象 ;
3、将步骤1新创建的对象作为this的上下文 ;
4、如果该函数没有返回对象,则返回this。
以上是MDN的原文,通过上面描述,我们能比较清晰的了解到一个简单new运算符背后做了些什么。现在我们来看看下面这段代码:
function Car(make, mod