×

每日一学习:如何实现一个new操作符

作者:jiang2019.05.05来源:Web前端之家浏览:7925评论:0
关键词:jsnew操作符

每日一学习:如何实现一个new操作符。操作符做了这些事:

它创建了一个全新的对象。

它会被执行[[Prototype]](也就是__proto__)链接。

它使this指向新创建的对象。。

通过new创建的每个对象将最终被[[Prototype]]链接到这个函数的prototype对象上。

如果函数没有返回对象类型Object(包含Functoin, Array, Date, RegExg, Error),那么new表达式中的函数调用将返回该对象引用。

  1. function New(func) {
  2.     var res = {};
  3.     if (func.prototype !== null) {
  4.         res.__proto__ = func.prototype;
  5.     }
  6.     var ret = func.apply(res, Array.prototype.slice.call(arguments, 1));
  7.     if ((typeof ret === "object" || typeof ret === "function") && ret !== null) {
  8.         return ret;
  9.     }
  10.     return res;
  11. }
  12. var obj = New(A, 1, 2);
  13. // equals to
  14. var obj = new A(1, 2);

您的支持是我们创作的动力!
温馨提示:本文作者系 ,经Web前端之家编辑修改或补充,转载请注明出处和本文链接:
https://jiangweishan.com/article/js2384gdgklj.html

网友评论文明上网理性发言 已有0人参与

发表评论: