实现new操作符

function New(func) {

  var res = {};

  if (func.prototype !== null) {

    res.__proto__ = func.prototype;

  }

  var ret = func.apply(res, Array.prototype.slice.call(arguments, 1));

  if ((typeof ret === "object" || typeof ret === "function") && ret !== null) {

    return ret;

  }

  return res;

}

var obj = New(A, 1, 2);

var obj = new A(1, 2);

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容