ES5之new关键字的作用是什么?

一、new 关键字的用法

function A() {};
var a = new A();

new关键字后面跟随一个函数,会在new之后立即执行。其执行的步骤如下:

  1. 创建一个新对象var obj = {};
  2. obj调用A函数,A.call(obj),目的是执行A.prototype.constructor函数,并且将其内部作用域变为新对象obj;
    注:A === A.prototype.constructor // true
  3. 返回obj对象

重写new关键字代码

function A() {};
function New(f) {
    var obj = {"__proto__": f.prototype};
    f.call(obj);//继承父类的属性
    return obj; //返回一个Object
}

//验证
var a = new(A);
a instanceof A; //true

猜你喜欢

转载自blog.csdn.net/qq_36470086/article/details/82730781