无 new 实例化

2019-09-28  本文已影响0人  冷r

无 new 实例化

(function(global) {
   // 构造函数
   const className = function() {
      // this一全局对象|父级作用域
      console.log(this);
      return new className.prototype.init();
   };
   //帮助构造函数实现无new实例化的函数。
   className.prototype.init = function() {
      // 将ini t函数的原型执向构造函数的原型,并返回自身
      className.prototype.init.prototype = className.prototype;
      return this;
   };
   //因为使用了闭包,外部访问不到当前className,所以将该类挂载到传递进来的全局对象globall window
   if (!global.className) {
      global.className = className;
   }
})(global);
上一篇 下一篇

猜你喜欢

热点阅读